child_process.execを介してコマンドを実行するnodejsサーバーがあります。そのようなコマンドの1つは、ノードインスタンス(および他のいくつかのこと)を再起動します。
スクリプトは次のようになります。
- ノードを強制終了します
- キルプログラムノードは使用します
- ログをクリアする
- プログラムの再起動ノードは使用します
- ノードを再起動します
これが最善の方法ではないことはわかっていますが、私の手は結ばれています(これはソフトウェアのリリース版であり、次のリリースまで再構築できません)。
何が起こっているのかというと、コマンドを実行すると、ノードが強制終了され、スクリプトの残りの部分が停止します。
ノードが使用しているデフォルトのシェルはshであり、変更できません。
私のオプションは何ですか?
サーバーはrootとして実行されているため、権限の問題は発生しません。どういうわけか新しいシェルを開始する必要があると思いますが、それを行う方法が完全にはわかりません。現在のシェルを正常に終了したいのですが、スクリプト全体を現在のシェルから分離できる限り、それは必須ではありません。