lastcomm を使うために accounting を enable する、という話を書いたけれど、 システムを再起動すると、disable になってしまう。起動するたびに
sudo /usr/sbin/accton /var/account/acct |
以前は、起動スクリプトのようなものがあって、それに書き足したけれど、 今はそういうことは launch control でやるのだそうだ (man launchctl してみよ)。
そういえば postfix の自動起動をやったっけ (http://nalab.mind.meiji.ac.jp/~mk/knowhow-2018/node8.html)。
ユーザーごとには ~/Library/LaunchAgents/なんとか.plist を作って設定するみたいだけれど、 これは /Library/LaunchAgents/ の下にファイルを作るみたい。
% ls /Library/LaunchAgents com.google.inputmethod.Japanese.Converter.plist com.google.inputmethod.Japanese.Renderer.plist com.google.keystone.agent.plist com.google.keystone.xpcservice.plist com.microsoft.update.agent.plist com.oracle.java.Java-Updater.plist@ net.pulsesecure.pulsetray.plist org.freedesktop.dbus-session.plist@ org.freedesktop.dbus-session.plist.mp_1475103973@ org.macosforge.xquartz.startx.plist % |
“なんとか” は、名前をユニークにすればいい、ということらしいけれど、 そうするために、名前の決め方に何となく慣習があるみたいだ。
今回のは com.local.accton.agent.plist とするかなあ。
色々見ていて、こんな書式なのだろうか?と把握したもので、とりあえず書いてみる。
こんな書式かな? |
<?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>Label</key> <string>ユニークな文字列。".plist" つけたのをファイル名にする?</string> <key>Program</key> <string>プログラムへのフルパス</string> <key>ProgramArguments</key> <array> <string>引数1</string> ... <string>引数n</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> |
/Library/LaunchAgents/com.local.accton.plist |
<?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>Label</key> <string>com.local.accton</string> <key>Program</key> <string>/usr/sbin/accton</string> <key>ProgramArguments</key> <array> <string>/var/account/acct</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> |
<key>名前</key の後に次のどちらか
<array> <string>文字列1</string> ... <string>文字列n</string> </array> |
設定 (これで指定日時などに実行される) |
launchctl load ~/Library/LaunchAgents/なんとか.plist |
設定し直し |
launchctl unload ~/Library/LaunchAgents/なんとか.plist launchctl load ~/Library/LaunchAgents/なんとか.plist |
すぐに実行 (これでテストできる) |
launchctl start ラベル |
終了 |
launchctl stop ラベル |
例えば Postfix のときは、システムのものだから、sudo して
sudo launchctl load /Library/LaunchDaemons/local.org.postfix.master.plist sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist |
ログは /var/log/system.log にたまる。
書いてから気づいたけれど、次のページが割と便利だ。
「LaunchDaemons (launchctl, launchd.plist) の使い方」
ロードされている job の一覧を表示する |
sudo launchctl list |
-w オプションの説明を書かないと。
でも…今の Mac の lastcomm はちゃんと動いていないような気がするな。