демоны и пользователи демонов (в частности, передача-демон) в OS X 10.5.8

3567
Just Jake

Я пытаюсь настроить transmission-daemonна компьютере под управлением Mac OS 10.5.8. Я хочу сделать все правильно, что означает (в моем понимании)

  1. создать пользователя службы (например, _transmission) для запуска программы
  2. создайте launchd UserAgent .plist для запуска transmission-daemonпри запуске системы и продолжения его работы
  3. конфигурировать transmission-daemon

Я думаю, что я сделал шаг 1 правильно. Я использовал dsclи ссылался на этот вопрос на serverfault, чтобы создать пользователя с именем _transmission. Вот мои настройки:

$ dscl . -read /Users/_transmission AppleMetaNodeLocation: /Local/Default GeneratedUID: 31D12B9E-EA47-4595-BFC4-57EB232C3B33 NFSHomeDirectory: /var/transmission Password: * PrimaryGroupID: 1001 RealName: Transmission bittorrent daemon RecordName: _transmission RecordType: dsRecTypeStandard:Users UniqueID: 1001 UserShell: /usr/bin/false 

Это кажется хорошо. Тем не менее, я не могу запустить запускаемый UserAgent для запуска демона. Вот моя попытка .plist. Передача не запускается после того, как я позвонюlaunchctl load -w /Library/LaunchAgents/com.transmissionbt.transmission-daemon

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>EnvironmentVariables</key> <dict> <key>TRANSMISSION_WEB_HOME</key> <string>/var/transmission/Web</string> </dict> <key>Label</key> <string>com.transmissionbt.transmission-daemon</string> <key>OnDemand</key> <false/> <key>Program</key> <string>/usr/sbin/transmission-daemon</string> <key>ProgramArguments</key> <array> <string>transmission-daemon</string> <string>-f</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceDescription</key> <string>Transmission-Daemon bittorrent client</string> <key>UserName</key> <string>_transmission</string> </dict> </plist> 

Итак, мой вопрос состоит из двух частей:

  1. Каков наилучший способ создания пользователей службы демонов в OS X?
  2. Почему мой LaunchAgent .plist не работает?
2
Проблемы с `launchd` доступны в` / Application / Utilities / Console.app`. Daniel Beck 13 лет назад 0
launchd, похоже, не сообщает о каких-либо проблемах. `translation-daemon` просто не запускается. Just Jake 13 лет назад 0
Агенты запуска запускаются, когда есть интерактивный сеанс для пользователя AFAIK. Вы пытались сделать это демоном запуска? Daniel Beck 12 лет назад 0

1 ответ на вопрос

1
bulljit

Это всего лишь предположение, но в соответствии с man-страницей «UserName» применимо только тогда, когда launchd работает от имени пользователя root.

попробуйте выгрузить plist, если он уже запущен:

launchctl unload /Library/LaunchAgents/com.transmissionbt.transmission-daemon 

а затем запустить от имени пользователя root:

sudo launchctl load -w /Library/LaunchAgents/com.transmissionbt.transmission-daemon 

Можете ли вы подтвердить, что он действительно загружает:

launchctl list | grep transmissionbt 

Дайте мне знать, если это сработает для вас.