macOSでスタートアップ時にスクリプトを常駐させる
macOSにてサイネージ向けにバックグラウンドでアプリケーションを起動しておきたかったときのメモ
仮想環境などの大掛かりにならずに、ウインドウを消してもしっかりと起動状態を保ってくれる方法を探すのに地味に時間がかかった…
メイン
以下のファイルを作成し、自動起動に入れると指定したスクリプトをバックグラウンドで実行させることができる
server.command
nohup 任意のスクリプトファイル &
設定ファイルを使う場合はcd
で移動してからnohup
で起動
※ターミナルのウインドウは残ってしまうので消すための処理を入れるか、手動で消す必要あり
サブ
その他の手法として以下
- Automator.appを利用し、任意のスクリプトかコマンドを実行させる
- 表示させるターミナルウインドウを消したら止まる
- Dockerで
restart: always
を指定する- 他、仮想環境も似たように
- cronに設定する
おわりに
今回、プログラム内にMySQLに書き込む処理を入れていたことが原因で、起動速度が早すぎるタイミングで実行させるとMySQLよりも先に起動してエラーすることがあった。
可能であればdocker-composeで環境ごと動かすのがストレスフリーで一番いいと思う。