私は一般的な機能であるか、プロセスを再起動する機能があるかどうかを知りたいです。 process.disconnect()
と似ていますが、この場合、関数が呼び出されるとスクリプトが再起動されます。Node.jsプロセス再開
答えて
一般的に、プロセス・マネージャーは、など永遠にMONIT、PM2、nodemon、しかし
として(自動的に)再起動プロセスに使用されている、あなたできただけで外れた子プロセスを生成することにより、プロセス自体から再起動これは一定の時間待機してから同じスクリプトを実行します。これを、スリープ状態と現在のコマンド行の2つのコマンドの組み合わせとして行うこともできますし、単純にスリープ状態をスクリプトに組み込むこともできます。後者の例:Windowsでは
var spawn = require('child_process').spawn;
(function main() {
if (process.env.process_restarting) {
delete process.env.process_restarting;
// Give old process one second to shut down before continuing ...
setTimeout(main, 1000);
return;
}
// ...
// Restart process ...
spawn(process.argv[0], process.argv.slice(1), {
env: { process_restarting: 1 },
stdio: 'ignore'
}).unref();
})();
、あなたはしかし、あなたのspawn()
構成オブジェクトにdetached: true
を追加する必要があります。 * nixでは、これは通常は必要ありません。
ただし、元のプロセスがフォアグラウンドで開始された場合、再起動されたプロセスはターミナルにアクセスできなくなります。
また、指定した時間に多くても1つのプロセスでのみ使用できるリソースがスクリプトで使用されていない場合は、遅延とprocess.env
のチェックを省略できます。
最後の注意:お使いのプロセス等C++アサーション、V8のバグを、トリガ、によるメモリの枯渇に、異常にクラッシュした場合、あなたのプロセスは明らかに(あなたが'unhandledException'
イベントハンドラがprocess
のために設定されている場合でも、再起動しません。 )。これらの状況を説明するには、プロセスを再起動するための何らかの外部メカニズムが必要です。
余分なカルマ「detached:true」を含むポイント!ありがとう、私はそれについて知らなかった! – amenthes
スクリプトをシステムデーモン(例えばupstartやsystemdなど)として起動する場合、ちょうどprocess.exit()
で、新しいプロセスを再作成することができます。
'process.exit()'はスクリプトを閉じるだけです。コマンドを使ってスクリプトを再起動する必要があります。 – Maxsanc1
- 1. node.jsシャットダウン/再開オブザーバ
- 2. プロセスIDとハンドルを保存してWindowsプロセスを再開
- 3. Node.jsマスタープロセスと子プロセス
- 4. Node.js単一プロセスのHerokuでの子プロセス
- 5. Node.jsプロセス/ループの開始、一時停止、停止
- 6. Node.jsのFIFO - プロセスが記述
- 7. のNode.js - スポーンのgzipプロセス
- 8. Linuxでのファイル変更プロセスを再開する
- 9. ジョブオブジェクト - プロセスのスレッドを中断/再開するには
- 10. ページをリフレッシュしてFlaskプロセスを再開する方法
- 11. WebRequestMethods.Ftp.UploadFileプロセスを一時停止して再開する方法は?
- 12. C(linux)でプロセスを中断/再開する方法
- 13. アクティビティを再開するとプロセスが終了する
- 14. Node.jsの一時停止とのsetTimeoutでストリームを再開()
- 15. Node.jsの間でsetTimeoutとsetIntervalを再開する
- 16. アプリケーション開発プロセス
- 17. D開発プロセス
- 18. node.js - クエリテーブルの再クエリ
- 19. node.jsコールバックと再帰
- 20. Node.jsで現在のプロセスが開始されてからの時間の取得
- 21. node.jsで開いているプロセスを強制終了するには?
- 22. Macでのnode.jsプロセスの停止
- 23. Node.JSで子プロセスがkillされない
- 24. node.jsプロセスを終了させるには?
- 25. forkedの子プロセスがnode.jsでハングする
- 26. Node.js子プロセスがSIGTERMで終了する
- 27. Node.jsの子プロセスstdoutとstderrカラムのサイズ
- 28. pipe子プロセスnode.jsのブラウザーにstdout&stdin&browserify
- 29. クラスタ化されたプロセス間のNode.jsデータベースミューテックス
- 30. 子プロセスからnode.jsでコードを実行
いいえ、処理の外側から行う必要はありません。あなたは単に 'process.exit'することができます。 –