まず、lanunchctlの動作から。
管理ユーザmeでlaunchctl listを実行。
$ launchctl list
$
どうやら、ユーザmeは管理権限はあるけれどもrootではないので、あくまでmeのリストを見るようだ。気を取り直して
$ sudo launchctl list
Password:
com.apple.dashboard.advisory.fetch
com.apple.KernelEventAgent
com.apple.mDNSResponder
com.apple.nibindd
com.apple.periodic-daily
com.apple.periodic-monthly
com.apple.periodic-weekly
com.apple.portmap
com.apple.syslogd
com.vix.cron
org.postfix.master
org.xinetd.xinetd
com.openssh.sshd
まだBIND(org.isc.named.plist)は読み込まれていない。ここでlaunchctl startをかけるとどうなるか。
$ sudo launchctl start org.isc.named
launchctl start error: No such process
loadしていないデーモンはstartなどの操作を受け付けないようだ。次に、namedが起動しない(設定ファイルに不備がある)状態でlaunchdに登録してみる。
#loadサブコマンドの -w は、loadの際に設定ファイルのdisabledキーをfalseに変更して上書きするオプション
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
$ sudo launchctl list
com.apple.dashboard.advisory.fetch
(略)
org.isc.named
loadした時点で、すぐに起動を試みるようだ。おそらく、org.isc.named.plistの定義で<key>OnDemand<key>が<false/>だからだろう。
以下、ログ。
/var/log/system.log:
Mar 24 21:27:56 pba sudo: localadmin : TTY=ttyp0 ; PWD=/Users/me ; USER=root ; COMMAND=/bin/launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
Mar 24 21:27:57 pba named[227]: starting BIND 9.3.2 -f
Mar 24 21:27:57 pba named[227]: /private/etc/named.conf:4: open: /etc/rndc.key: file not found
Mar 24 21:27:57 pba named[227]: loading configuration: file not found
Mar 24 21:27:57 pba named[227]: exiting (due to fatal error)
Mar 24 21:27:57 pba launchd: org.isc.named: exited with exit code: 1
Mar 24 21:27:57 pba launchd: org.isc.named: respawning too quickly! throttling
Mar 24 21:27:57 pba launchd: org.isc.named: 9 more failures without living at least 60 seconds will cause job removal
Mar 24 21:27:57 pba launchd: org.isc.named: will restart in 10 seconds
Mar 24 21:28:07 pba named[228]: starting BIND 9.3.2 -f
[snip]
Mar 24 21:29:17 pba launchd: org.isc.named: 1 more failure without living at least 60 seconds will cause job removal
Mar 24 21:29:17 pba launchd: org.isc.named: will restart in 10 seconds
Mar 24 21:29:27 pba named[237]: starting BIND 9.3.2 -f
Mar 24 21:29:27 pba named[237]: /private/etc/named.conf:4: open: /etc/rndc.key: file not found
Mar 24 21:29:27 pba named[237]: loading configuration: file not found
Mar 24 21:29:27 pba named[237]: exiting (due to fatal error)
Mar 24 21:29:27 pba launchd: org.isc.named: exited with exit code: 1
Mar 24 21:29:27 pba launchd: org.isc.named: respawning too quickly! throttling
Mar 24 21:29:27 pba launchd: org.isc.named: too many failures in succession
console.logはnamedのログのみ。
/Library/Logs/console/501/console.log:
Mar 24 21:27:57 pba named[227]: /private/etc/named.conf:4: open: /etc/rndc.key: file not found
Mar 24 21:27:57 pba named[227]: loading configuration: file not found
Mar 24 21:27:57 pba named[227]: exiting (due to fatal error)
[snip:あと9回繰り返し]
Mar 24 21:29:27 pba named[237]: exiting (due to fatal error)
10秒おきにリトライして10回失敗したらあきらめる様子。このままでは不安なのでunload。が、予想外の反応が。
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.isc.named.plist
No such process(unloadしようにも、そんなのloadされてないね。)
sudo launchctl listしても、org.isc.named.plistの姿はない。ファイル"/System/Library/LaunchDaemons/org.isc.named.plist"のDisalbeキーもtrueに書き戻されている。
どうやら10回挑戦してだめだった場合、自動的に"unload -w"されるようだ。
要するに
launchctl load | launchdへの登録。plistのDisabledがtrueであるならば、-wオプションをつけることでfalseに書き換えてくれる。 |
launchctl [ start | stop ] | loadされているデーモンを開始/終了ただし、stopしても要求があれば起動する |
launchctl unload | launchdへの登録削除。-wオプションはloadサブコマンドの際の逆。次の再起動かloadが行われるまで停止するなら -w 無しで、完全に無効にするなら -w をつけるという感じか。 |
launchctl list | loadされているデーモンの一覧 |
という使い方らしい。(自信無し)
0 件のコメント:
コメントを投稿