ラズパイ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が無事に自動起動していた!

これにて任務完了

参考リンク

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.