参考:
やり方
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
を実行すると、復活しました。