参考:
やり方
pm2 starupを実行すると、実行すべきコマンドが表示される。それを実行する。- 上記を実行すると、
/etc/systemd/system/pm2-ec2-user.serviceが作成された。 pm2 saveを実行すると、~/.pm2/dump.pm2が作成(更新)された。
メモ
dump.pm2に、pm2で実行したいプログラムが記録されていた。現在pm2で実行しているプログラムを自動起動させたい場合、pm2 saveを実行したらいいらしい。pm2 startupで表示されるコマンドは、上記のdump.pm2で記録されているプログラムをpm2で自動起動させるためのコマンド。- 新しいNode.jsバージョンにアップグレードする場合は、PM2起動スクリプトを更新してください。
pm2 unstartup最初に使用し、pm2 startupもう一度使用する
$ pm2 startup [PM2] Init System found: systemd ec2-user [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ec2-user --hp /home/ec2-user $ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ec2-user --hp /home/ec2-user $pm2 save
pm2-ec2-userを確認してみる
$ systemctl status pm2-ec2-user
● pm2-ec2-user.service - PM2 process manager
Loaded: loaded (/etc/systemd/system/pm2-ec2-user.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://pm2.keymetrics.io/
$ systemctl is-enabled pm2-ec2-user
enabled
pm2-ec2-userの中身
[Unit] Description=PM2 process manager Documentation=https://pm2.keymetrics.io/ After=network.target [Service] Type=forking User=ec2-user LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Environment=PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin Environment=PM2_HOME=/home/ec2-user/.pm2 PIDFile=/home/ec2-user/.pm2/pm2.pid Restart=on-failure ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill [Install] WantedBy=multi-user.target
pm2 resurrectを実行してみる
pm2 resurrectは、以前にダンプされたプロセスを復活させる。pm2 delで、pm2で実行中(pm2 saveで保存した)のプロセスを削除して、pm2 resurrectを実行すると、復活しました。