daemons e usuários do daemon (especificamente transmission-daemon) no OS X 10.5.8

2

Estou tentando configurar transmission-daemon em uma caixa que executa o Mac OS 10.5.8. Eu quero fazer as coisas da maneira certa, o que significa (no meu entender)

  1. crie um usuário de serviço (_transmission, por exemplo) para o programa ser executado em
  2. crie um launchd UserAgent .plist para executar transmission-daemon na inicialização do sistema e mantê-lo em execução
  3. configure transmission-daemon

Acho que fiz o passo 1 corretamente. Eu usei dscl e referenciei esta questão no serverfault para criar um usuário chamado _transmission . Aqui está minha configuração:

$ 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

Isso parece OK. No entanto, não consigo fazer com que o meu UserAgent launchd execute o daemon. Aqui está minha tentativa em um .plist. A transmissão não é executada depois que eu chamo 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>

Então, minha pergunta é dupla:

  1. Qual é a melhor maneira de criar usuários do serviço daemon no OS X?
  2. Por que meu launchad LaunchAgent .plist não está funcionando?
por Just Jake 20.01.2011 / 04:09

1 resposta

1

Este é apenas um palpite, mas de acordo com a página de manual "UserName" só é aplicável quando o launchd está sendo executado como root.

tente descarregar o plist se ele já estiver em execução:

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

e, em seguida, execute como root:

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

Você pode confirmar que ele realmente carrega:

launchctl list | grep transmissionbt

Deixe-me saber se isso funciona para você.

    
por 05.02.2011 / 03:36