Octofarm: 推奨 npm の自動起動 (Linux の場合)?

作成日 2020年04月28日  ·  5コメント  ·  ソース: OctoFarm/OctoFarm

Linuxで起動が完了した後にnpmを自動起動するための推奨される方法はありますか。 init.d を使用してこれを実行しようとしましたが、成功しませんでした。

question

最も参考になるコメント

Ubuntuを使用してsystemdサービスファイルを使用していましたが成功しました。 James が述べているように、新しいバージョンには pm2 が付属しています。 pm2 でpm2 startupを実行すると、init システムが検出され、起動ファイルを生成するために実行するコマンドが出力されます。 私はちょうどそれをしましたが、それはかなりうまくいくようです。

完全な開示: 今日まで pm2 について聞いたことさえなかったので、少し調べなければなりませんでした.

pm2 startupを実行すると、次のようになります。

ubuntu<strong i="10">@octofarm</strong>:~$ OctoFarm/node_modules/pm2/bin/pm2 startup
[PM2] Init System found: systemd
ubuntu
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

そして、コマンドを実行すると、次のように表示されました。

ubuntu<strong i="14">@octofarm</strong>:~$ sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=ubuntu
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/ubuntu/.pm2
PIDFile=/home/ubuntu/.pm2/pm2.pid
Restart=on-failure

ExecStart=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-ubuntu.service
Command list
[ 'systemctl enable pm2-ubuntu' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-ubuntu.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-ubuntu...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service → /etc/systemd/system/pm2-ubuntu.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

全てのコメント5件

多くの場合、pm2 という npm パッケージを使用します。

npm install pm2 -gインストールできます

次に、以下を実行します。

pm2 startup

最後の出力の後に pm2 が出力する出力をコピーして貼り付けます。

pm2 start app.js --name OctoFarm

pm2 save

https://pm2.keymetrics.io/docs/usage/startup/

ここに詳しい情報があります。行き詰まったらお知らせください。

1.1.5 には依存関係として pm2 が付属しており、それを使用して実行されます。起動時に起動コマンドを有効にできるので、すべて自動ですが、まだ詳しく調べていません。

Ubuntuを使用してsystemdサービスファイルを使用していましたが成功しました。 James が述べているように、新しいバージョンには pm2 が付属しています。 pm2 でpm2 startupを実行すると、init システムが検出され、起動ファイルを生成するために実行するコマンドが出力されます。 私はちょうどそれをしましたが、それはかなりうまくいくようです。

完全な開示: 今日まで pm2 について聞いたことさえなかったので、少し調べなければなりませんでした.

pm2 startupを実行すると、次のようになります。

ubuntu<strong i="10">@octofarm</strong>:~$ OctoFarm/node_modules/pm2/bin/pm2 startup
[PM2] Init System found: systemd
ubuntu
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

そして、コマンドを実行すると、次のように表示されました。

ubuntu<strong i="14">@octofarm</strong>:~$ sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=ubuntu
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/ubuntu/.pm2
PIDFile=/home/ubuntu/.pm2/pm2.pid
Restart=on-failure

ExecStart=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-ubuntu.service
Command list
[ 'systemctl enable pm2-ubuntu' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-ubuntu.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-ubuntu...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service → /etc/systemd/system/pm2-ubuntu.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

お二方とも迅速な対応ありがとうございました。 これは今日後で試してみます。 私は Linux システムが好き/嫌いです - すべてを実行するための約 10 の異なる方法私は 1980 年代後半に BSD Unix を使い始めました。

問題ありません。README/Wiki にメモを追加することを忘れないように、今はこれを開いたままにします

このクロス プラットフォームを実行するために追加されたインストール ドキュメント

このページは役に立ちましたか?
0 / 5 - 0 評価