Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
108
Help us understand the problem. What is going on with this article?
@bsdhack

OS X で起動時に任意のコマンドを実行する

More than 5 years have passed since last update.

OS X 10.5 以降で起動時に任意のコマンドを自動で実行したい場合、本来であれば launchd(8) を使用した制御が必要なので /System/Library/LanchDaemons/ 以下に plist ファイルを準備する必要がありますが、/Library/StartupItems にコマンド起動用のスクリプトファイルを設置する事で、起動時に任意のコマンドを実行できます。
基本は普通のシェルスクリプトですので、シェルスクリプトに慣れている場合はこちらの方が使いやすいかも知れません。

/Library/StartupItems に任意の名称のディレクトリを作成する

ここでは "サービス" とします。

# mkdir /Library/StartupItems/サービス

作成したディレクトリに起動スクリプトを作成する

スクリプトファイルは "サービス" と同じファイル名にします。

# cat << EOF > /Library/StartupItems/サービス/スクリプト
> #!/bin/sh
>
> . /etc/rc.common
>
> StartService ()
> {
>   # 起動時に実行するコマンドを記述する
> }
>
> StopService ()
> {
>   # シャットダウン時に実行するコマンドを記述する
> }
>
> RestartService () { StartService; }
>
> RunService "$1"
> EOF

サービスの説明を記述した plist ファイルを作成する

サービスの説明と提供するサービスの内容を書いたテキストファイルを作成します。
ファイル名は StartupParameters.plist とします。

# cat << EOF > /Library/StartupItems/サービス/StartupParameters.plist
> {
>   Description     = "サービスの説明";
>   Provides        = ("提供するサービスの内容");
> }
> EOF

正しい権限を設定する

セキュリティ上の理由から、ファイルの所有者が root 以外の場合は自動実行されない様なので権限を正しく設定します。

# chmod 755 /Library/StartupItems/サービス名/スクリプト名
# chown -R root:wheel /Library/StartupItems/サービス名

これで次回の起動時より指定したコマンドが自動で実行されます。

108
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
bsdhack
親バカがviでシェルスクリプトを書いてる様なヤツです。 古き良きUNIXが好きですが最近は Mac ばかり使ってます。 Unix/Linux 技術者をお捜しの方は是非声をかけて下さい

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
108
Help us understand the problem. What is going on with this article?