永続アプリケーション:起動スクリプトジェネレーター
PM2は、予期せぬマシンの再起動時にもプロセスリストを維持するために、起動スクリプトを生成し、構成することができます。
- systemd: Ubuntu >= 16, CentOS >= 7, Arch, Debian >= 7
- upstart: Ubuntu <= 14
- launchd: Darwin, MacOSx
- openrc: Gentoo Linux, Arch Linux
- rcd: FreeBSD
- systemv: CentOS 6, Amazon Linux
これらのinitシステムは、pm2 startup
コマンドでPM2によって自動的に検出されます。
起動スクリプトの生成
起動スクリプトを自動的に生成して構成するには、コマンド(sudoなし)pm2 startup
を入力します。
$ pm2 startup
[PM2] You have to run this command as root. Execute the following command:
sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v14.3/bin pm2 startup <distribution> -u <user> --hp <home-path>
次に、表示されたコマンドをターミナルにコピー&ペーストします。
sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v14.3/bin pm2 startup <distribution> -u <user> --hp <home-path>
これで、PM2はブート時に自動的に再起動します。
注記: --service-name <name>
オプションを使用してサービス名をカスタマイズできます (#3213)
再起動時に復元するアプリリストの保存
必要なアプリをすべて起動したら、アプリリストを保存して、再起動後に再生成するようにします。
pm2 save
プロセスの手動復活
以前に保存されたプロセス(pm2 save経由)を手動で復元するには
pm2 resurrect
起動システムの無効化
現在の起動構成を無効化して削除するには
pm2 unstartup
上記のコード行でPM2はプラットフォームを検出します。または、別の指定されたinitシステムを自分で使用することもできます。
Node.jsバージョンのアップグレード後の起動スクリプトの更新
ローカルのNode.jsバージョンをアップグレードする際には、インストールした最新のNode.jsバイナリを実行するように、PM2起動スクリプトを更新してください。
まず、現在の起動構成を無効化して削除します(そのコマンドの出力をコピー&ペーストします)。
$ pm2 unstartup
次に、新しい起動スクリプトを復元します。
$ pm2 startup
ユーザー権限
起動スクリプトを別のユーザーで実行したいとします。
-u <username>
オプションと--hp <user_home>
を変更するだけです。
pm2 startup ubuntu -u www --hp /home/ubuntu
initシステムの指定
必要に応じて、使用するプラットフォームを自分で指定できます(プラットフォームは上記のいずれかになります)。
pm2 startup [ubuntu | ubuntu14 | ubuntu16 | ubuntu18 | ubuntu20 | ubuntu12 | centos | centos6 | arch | oracle | amazon | macos | darwin | freebsd | systemd | systemv | upstart | launchd | rcd | openrc]
SystemDインストールチェック
# Check if pm2-<USER> service has been added
$ systemctl list-units
# Check logs
$ journalctl -u pm2-<USER>
# Cat systemd configuration file
$ systemctl cat pm2-<USER>
# Analyze startup
$ systemd-analyze plot > output.svg
PM2を実行するためにマシンがオンラインになるのを効率的に待つには
[Unit]
Wants=network-online.target
After=network.target network-online.target
[....]
[Install]
WantedBy=multi-user.target network-online.target
Windows起動スクリプト
Windows互換の起動スクリプトを生成するには、優れたpm2-installerを参照してください。
サポートされているinitシステム
- systemd: Ubuntu >= 16, CentOS >= 7, Arch, Debian >= 7
- upstart: Ubuntu <= 14
- launchd: Darwin, MacOSx
- openrc: Gentoo Linux, Arch Linux
- rcd: FreeBSD
- systemv: CentOS 6, Amazon Linux
これらのinitシステムは、pm2 startup
コマンドでPM2によって自動的に検出されます。