
私は会社用のサーバー プログラムを作成しましたが、これを Ubuntu サーバー上で実行し続けたいと思っています。
私は、週に一度システム全体を再起動する cronjob を設定することを考えていました (セキュリティ上の理由、まだ発見されていないメモリ リークが発生した場合に RAM をクリアするためなど)。しかし、プロセスをどのように維持すればよいかわかりません。
今私は
screen
./launch_server
そしてそれをデタッチします。これは、サーバー上で Web 公開プログラムを実行するのに適した方法でしょうか? 何らかの理由で、daemontools や runit のようなものが必要なのでしょうか?
答え1
あなたの質問は、実際には 2 つの質問の組み合わせです。
- 起動時にプログラムを実行するにはどうすればよいですか?
使用アップスタートまたはシステム( のスクリプト/etc/init.d
)、バージョンによって異なります。
- どうすれば実行し続けることができますか?
最も簡単な方法は、プロセス名が実行状態にあるかどうかをチェックし、そうでない場合は再起動する cron ジョブを追加することです。これに、実行状態にあることがわかったら電子メールを送信するように追加して、システムに何かが起こって繰り返し強制終了しているかどうかがわかるようにします。また、プログラムにタイムスタンプ付きのログ記録がまだない場合は追加して、これらのイベントが発生したときの記録を保持できるようにします。
可能であれば、プログラムが停止する原因となった信号や状態もログに記録して、プログラムが停止するのを防げるようにする必要があります。プログラム ログを自動メールに追加することも検討してください。