Macでatコマンドを使ったらなぜかうまくいかなくて、原因を調べたら、どうやらdaemonが起動していない模様。
atコマンドが使いたくなった。launchctl - fu7mu4の日記
設定は上記の記事の通りやったら動いたのですが、そもそもMac特有のlaunchdについてよく知らないことに気づいたのでざっくり調べてみました。
launchdの基礎
launchdの起動するサービス
DaemonとAgentがある。
- Daemon
- root権限での動作が前提。ユーザの有無とは無関係のサービス
- Agent
- 各ユーザ向けのサービス。ユーザ権限で起動されるlaunchdから立ち上がる
launchd.plistの設定項目
自分が使いそうなやつだけメモ。
- Label
- ラベルを指定。必須
- Diaabled
- yesなら設定無効
- UserName
- 実行ユーザを指定
- ProgramArguments
- 配列で指定。起動するサービスのパスと引数を指定。
- Program
- プログラム名を指定。
- OnDemand
- yesならイベント発生時に起動するようになる
- RunAtLoad
- yesならlaunchd起動時に起動するようになる
デーモン設定の仕方
デーモンが起動してないんじゃないかなーと思ったときにとる行動のメモ。
- /System/Library/LaunchDaemonに移動
- それらしき設定ファイルを探す
- Disableがtrueになってたらlaunchctl load -w ファイル名 などする
- 設定がそれでよさそうならlaunchctl start ラベル名