web-dev-qa-db-ja.com

OS X 10.5.8上のデーモンおよびデーモンユーザー(具体的には、伝送デーモン)

Mac OS10.5.8を実行しているボックスにtransmission-daemonを設定しようとしています。私は物事を正しい方法でやりたい、つまり(私の理解では)

  1. プログラムを実行するサービスユーザー(_transmissionなど)を作成します。
  2. 起動した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>

したがって、私の質問は2つあります。

  1. OS Xでデーモンサービスユーザーを作成するための最良の方法は何ですか?
  2. 起動したLaunchAgent.plistが機能しないのはなぜですか?
2
Just Jake

これは単なる推測ですが、マンページによると、「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

これがあなたのためにうまくいくかどうか私に知らせてください。

1
bulljit