頻繁にアクセスしないコンピュータでリモート操作を実行していますが、セッションが終了したら接続をsudo halt
終了してコンピュータを終了するように指示します。残念ながら、今はセッションで使用されたコマンドがファイルに書き込まれたかどうかはわかりません.bash_history
。これにより、man halt
実行中のすべてのプロセスにSIGTERMを送信してからSIGKILLを送信します(プロセスが時間内に終了しない場合にのみこれを実行すると思います)。
停止および再起動ユーティリティはファイルシステムキャッシュをディスクにフラッシュし、SIGTERM(後にSIGKILL)を実行しているすべてのプロセスに送信し、それぞれシステムを停止または再起動します。
まず、bashにSIGTERMを送信して、パソコンでこれをテストしましたが、bashが応答しないようです。それから私はSIGKILLを送りました。その後、.bash_history
私のセッションに記録された内容があるかどうかを確認するためにファイルを確認しましたが、何も記録されませんでした。私が理解しているように、SIGTERMはプロセスで無視され、この信号にどのように応答するかを解釈できるため、必要に応じてシャットダウンプロセスを実行できるため、これは意味があります。しかし、もう一度私自身の理解によると、SIGKILLは無視することはできず、清掃や他の死の儀式を実行する時間は与えられません。
このテストとこのテストで得られた結論によれば、sudo halt
リモートホストで実行しているときにリモートセッションが保存される可能性がほとんどないようです。私が間違ってリモートセッションを保存する方法はありますか.bash_history
?
ベストアンサー1
- SIGTERM によって SSH が終了しました。
- sshは疑似端末(pty)マスターデバイスを閉じます。
- pty は SIGHUP を bash に送信します。
- 「SIGHUPを受信した後、デフォルトではシェルは終了します。」