GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで実行中のプロセスを再起動(またはリセット)する方法は?

ソケットを介して通信する2つのLinuxシステム(デスクトップとARMベースの開発ボード)があります。

サーバーが特定の事前定義されたメッセージを送信したときに、(開発ボードで実行されている)クライアントアプリケーションを再起動(またはリセット)したい。 Linuxを再起動(再起動)したくありません。クライアントアプリケーションが自動的に再起動したいだけです。

どうすればいいのかわからない。

承認された回答:

これを行う通常の方法は、プログラムを終了させ、監視システムを使用して再起動することです。 init プログラムはそのような監視システムを提供します。さまざまなinitプログラム(SysVinit、BusyBox、Systemdなど)があり、構成メカニズムは完全に異なります(常に構成ファイルを作成しますが、ファイルの場所と構文は異なります)。そのため、次のプログラムのドキュメントを参照してください。使用しています。起動時または明示的な要求に応じてプログラムを起動し、プログラムが停止した場合に再起動するようにinitを構成します。より洗練された監視プログラムもありますが、必要とは思えません。このアプローチには、プログラムが単独で再起動するよりも多くの利点があります。これは標準であるため、サービスの作成方法を気にすることなく、多数のサービスを再起動できます。バグが原因でプログラムが停止した場合でも機能します。

プロセスに終了するように指示する標準的なメカニズムがあります:シグナル。プログラムにTERMシグナルを送信します。プログラムでクリーンアップを実行する必要がある場合は、シグナルハンドラーを作成します。このようなコマンドを送信する管理チャネルがある場合は、プログラム固有のコマンドを使用してシャットダウンすることを排除するものではありません。


Linux
  1. Linux –実行中のプロセスの壁掛け時計の時間を取得する方法は?

  2. Linuxで実行中のプロセスを強制終了する方法

  3. Linuxの特定のポートで実行されているプロセスを強制終了する方法は?

  1. Linux で特定のプログラムのプロセス ID を設定する方法

  2. Ubuntu Linux で実行されているリモート MySQL サーバーを再起動する方法は?

  3. Linux で実行中のプロセスのダンプ ファイルを作成するにはどうすればよいですか?

  1. Linuxでゾンビプロセスを強制終了する方法

  2. Linuxにvtopをインストールする方法

  3. LinuxでPythonを使用してプロセスがまだ実行されているかどうかを確認するには?