Mac
launchctl

[Mac]OS起動時に、スクリプトを実行する

More than 3 years have passed since last update.

launchctlで、OS起動時にスクリプトを実行させます。

システムワイド環境変数を設定する際に便利です。


手順


1. スクリプト作成

OS起動時に自動で実行するスクリプトを作成します。

/Users/XXXX/.system.enviroment

#! /bin/sh

/bin/launchctl setenv REDMINE_ACCESS_TOKEN XXXX
/bin/launchctl setenv REDMINE_URL https://redmine.XXXX.co.jp
/bin/launchctl setenv GITHUB_TOKEN XXXX
/bin/launchctl setenv QIITA_ACCESS_TOKEN XXXX
/bin/launchctl setenv BACKLOG_ACCESS_TOKEN XXXX
/bin/launchctl setenv BACKLOG_URL https://XXXX.backlog.jp


2. plistファイルを作成

launchctlにloadするplistファイルを作成します。

plistで、スクリプトをロード時に実行するように設定します。

実行スクリプトのPATHはチルダ(~)が使えないようです。

/Users/XXXX/Library/LaunchAgents/system.environment.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>system.environment</string>
<key>Program</key>
<string>/Users/XXXX/.system.enviroment</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>


3. plistファイルをロード

plistをlaunchctlにloadします。

launchctl load ~/Library/LaunchAgents/system.environment.plist


おわり

上記の手順で、OS再起動時に設定したスクリプトが実行されます。

launchctl loadに実行されるのでOS再起動しなくても

unloadしてloadしなおせば動作確認可能です。