ラズパイ3が起動したらslack-bot.jsというスクリプトをpm2で自動起動させたい
foreverでやってみようと頑張ったが、pm2でやったほうがはるかに簡単だった
前提
- ラズパイは起動設定済み
- npmとnodejsはインストール済み
pm2インストール
$ npm i -g pm2
まずスクリプト実行
$ pm2 start main.js --name slack-bot
--name
オプションでslack-bot
というアプリ名で実行できる。
名前指定したほうが絶対便利なのでオススメする
自動起動スクリプトを作成
マシンに自動的に設定された起動スクリプトを取得するには、次のコマンドを入力する必要がある。
$ pm2 startup
どうやらOSによって自動起動させる構成が違うらしく、それをpm2 startup
がよろしくやってくれるようだ。
startupのログ
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
メッセージに、「スタートスクリプトを設定するには以下のコマンドをコピペしてね」、と出たので
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
さっそくこのコマンドをコピペで実行してみる
$ sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
ログの最後あたりに[DONE]
と表示されていればOK
あとは起動するアプリを保持するため以下を実行する
$ pm2 save
これで設定は完了
確認としてラズパイを再起動してみる
再起動後、ssh接続して
$ pm2 list
┌───────────┬────┬──────┬─────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├───────────┼────┼──────┼─────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ slack-bot │ 0 │ fork │ 720 │ online │ 0 │ 15m │ 0% │ 53.8 MB │ pi │ enabled │
└───────────┴────┴──────┴─────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
slack-botが無事に自動起動していた!
これにて任務完了