- GIDEON
- GIDEON STAFF BLOG
2009/10/14
起動時に任意のコマンドを実行する
Mac OS X 10.5 以降で起動時に任意のコマンドを自動で実行したい場合、
本来であれば launchd(8) を使用した制御が必要なので
/System/Library/LanchDaemons/ 以下に
plistファイルを準備する必要がある。
しかし、/Library/StartupItems に
コマンド起動用のスクリプトファイルを設置する事により
任意のコマンドを起動できるので、
unix 系のシェルスクリプトに慣れている場合は
こちらの方が使いやすい場合もある。
-
/Library/StartupItems に任意の名称
(ここではサービス名とする)でディレクトリを作成する。
# mkdir /Library/StartupItems/サービス名
-
作成したディレクトリに任意の名称で起動スクリプトを作成する
スクリプトファイルは サービス名 と同じ名称にする。# cat << EOF > /Library/StartupItems/サービス名/スクリプト名 #!/bin/sh . /etc/rc.common StartService () { # サービスを開始するためのコマンドを記述 } StopService () { # サービスを終了するためのコマンドを記述 } RestartService () { StartService; } RunService "$1" EOF
-
作成したスクリプトに実行権限を付与する
# chod 755 /Library/StartupItems/サービス名/スクリプト名
-
作成したディレクトリに StartupParameters.plist
という名称でサービスの説明を記述したファイルを作成する。
# cat << EOF > /Library/StartupItems/サービス名/StartupParameters.plist { Description = "サービスの説明"; Provides = ("提供するサービスの内容"); } EOF
-
ファイルの所有権限を root に設定する。
セキュリティ上の理由から、 ファイルの所有者が root 以外の場合は自動実行されない様だ。# chown -R root:wheel /Library/StartupItems/サービス名
再起動するとサービスが自動で実行される。