起動スクリプト

永続アプリケーション:起動スクリプトジェネレーター

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によって自動的に検出されます。

このページに貢献する