gosoly

ゆっくりと趣味に浸る。

macOSでスタートアップ時にスクリプトを常駐させる

macOSにてサイネージ向けにバックグラウンドでアプリケーションを起動しておきたかったときのメモ

仮想環境などの大掛かりにならずに、ウインドウを消してもしっかりと起動状態を保ってくれる方法を探すのに地味に時間がかかった…

メイン

以下のファイルを作成し、自動起動に入れると指定したスクリプトをバックグラウンドで実行させることができる

server.command

nohup 任意のスクリプトファイル &

設定ファイルを使う場合はcdで移動してからnohupで起動

※ターミナルのウインドウは残ってしまうので消すための処理を入れるか、手動で消す必要あり

サブ

その他の手法として以下

  • Automator.appを利用し、任意のスクリプトかコマンドを実行させる
    • 表示させるターミナルウインドウを消したら止まる
  • Dockerでrestart: alwaysを指定する
    • 他、仮想環境も似たように
  • cronに設定する

おわりに

今回、プログラム内にMySQLに書き込む処理を入れていたことが原因で、起動速度が早すぎるタイミングで実行させるとMySQLよりも先に起動してエラーすることがあった。

可能であればdocker-composeで環境ごと動かすのがストレスフリーで一番いいと思う。