セッションが閉じられた後にSSHセッションで開始された無限実行プロセス(ztail)を停止する方法

セッションが閉じられた後にSSHセッションで開始された無限実行プロセス(ztail)を停止する方法

特別な問題があります。私のサーバーは、複数の管理者がコマンドラインインターフェースを介して同時に管理できるように、複数のSSHセッションを同時にサポートしています。圧縮ログファイルを表示するコマンドがありますztail。現在のSSHセッションが閉じられたら、理想的にはコマンドが動作を停止する必要があります(コマンドを停止するためにCtrl-を押す必要はありません)。ただし、新しいSSHセッションを開始すると、以前のセッションが閉じられたにもかかわらず、プロセス()がまだバックグラウンドで実行され、CPUを消費していることがわかります。これで、その変数/フラグを使用して、以前に閉じられたセッションで開始されたコマンドを閉じるか停止できるように、セッションがいつ閉じられたかをどうやって知ることができますか?Cztailztail

ベストアンサー1

これは、たとえばバックグラウンドで、またはcronを介して新しいルートレベルプロセス(つまり親プロセスなし)で実行(または他のコマンド)ztailする場合にのみ発生します。

通常、標準セッションを開始すると、起動するすべてのsshプログラムのルートプロセスであるシェルプロセスが作成されます。sshセッションが終了すると、カーネルはすべての子プロセスも終了します。 (これが人々が通常screen持続セッションに似たものを使用する理由です。)

したがって、最も簡単な方法はこの基本的な動作を活用することです。ルートプロセスがps axjf何であるかを確認し、ztail終了したセッションsshで生き残った理由を学びます。

おすすめ記事