どせいたんさき。

ナスダヨー

リブート直後に特定のコマンドをログインシェル環境で実行したい

目的

Linux をリブートしたときに特定のコマンドを実行させたい.しかし,そのコマンドは pyenv でインストールした環境に依存しているため環境変数がある程度ロードされている環境でなければ実行できない.リブート直後に特定のコマンドをログインシェル環境で実行したい.

解決策

  1. crontab の実行オプションに @reboot を使用する.
  2. 実行したいコマンド群をスクリプトにまとめる
  3. スクリプトbash から実行する時に -l オプションを与える

具体的には以下のように crontab を編集する.

@reboot /bin/bash -l -c '/path/to/script/file' >> /path/to/log/file 2>&1

/path/to/script/file には実行したいコマンドを書いたファイルへのパスを記述する.ファイルには実行権限を与えることを忘れないこと.

参考資料