2

Я пытаюсь настроить 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 не работает?

1 ответ1

1

Это всего лишь предположение, но в соответствии с 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .