目次

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_PATHnode_modulesのパスを設定する。
@reboot時には、まだ環境変数が読み込まれていない。
必要な環境変数はcrontab内で設定しなければならない。

@reboot(サーバー起動)時に、
forever start bin/www
を実行している。

@reboot時には、環境変数PATHも未設定なので、
foreverbin/wwwもフルパスを書く必要がある。

サーバーを再起動

reboot

foreverのプロセスを確認

forever list

サーバー再起動後、foreverでアプリ起動に成功していればOK。