foreverをcrontabで実行する方法
ユーザーを切替
su
root
ユーザーに切り替え。
crontab
はユーザー単位の設定。
root
ユーザーでcrontab -e
を編集すると、
root
ユーザーの権限でcrontab
に設定したコマンドが実行される。
別のユーザーに切り替えてcrontab -e
を開くと、
root
で設定したcrontab
の内容は表示されず、ユーザーごとに個別のcrontab
編集画面になる。
node_modulesのパスを確認する
npm root -g
- 実行結果
/home/user1/.anyenv/envs/nodenv/versions/16.5.0/lib/node_modules
foreverのパスを確認する
which forever
- 実行結果
/home/user1/.anyenv/envs/nodenv/shims/forever
crontabを設定
crontabを開く
crontab -e
cronの設定ファイルを開く。
crontabを編集
- crontab抜粋
NODE_PATH=/home/user1/.anyenv/envs/nodenv/versions/16.5.0/lib/node_modules @reboot /home/user1/.anyenv/envs/nodenv/shims/forever start /home/user1/Projects/xxx/backend/bin/www
環境変数NODE_PATH
にnode_modules
のパスを設定する。
@reboot
時には、まだ環境変数が読み込まれていない。
必要な環境変数はcrontab内で設定しなければならない。
@reboot
(サーバー起動)時に、
forever start bin/www
を実行している。
@reboot
時には、環境変数PATH
も未設定なので、
forever
もbin/www
もフルパスを書く必要がある。
サーバーを再起動
reboot
foreverのプロセスを確認
forever list
サーバー再起動後、foreverでアプリ起動に成功していればOK。