ターミナルセッションが終了したときにロードされたファイルがありましたか?

ターミナルセッションが終了したときにロードされたファイルがありましたか?

ローカルコンピュータ経由でもSSH経由でも端末セッションが開始されると、.profile/.bash_profileがロードされることがわかります。セッションが終了すると、ファイルはロード/呼び出しされますか?

理由:特定のユーザーに接続されているターミナルセッションの日付とIPアドレスを記録するように.profileを設定しました。

答え1

~/.bash_logoutログインシェルが終了するとbashによって実行されます。ただし、を使用してIPアドレスと日付の詳細を取得することもできますlastlog。試してみましたか?

~/.bash_logoutただし、セッションが実行されないか、kill -9 $$強制的に閉じることができます。

答え2

すべてのシェルには、シェルが終了したときにいくつかのコードを実行する方法があります。トラップ。 「trap」はシェル語です。信号ハンドラ。特別な値を使用する場合、またはシェルが正常に終了した場合(入力の終わりに到達または呼び出された場合)、INT信号の名前(、、...)または番号を一覧表示して信号トラップを設定できます。HUP0EXITexit

trap 'echo "$IP_ADDRESS logged out at $(date)" >>"$LOG_FILE"' EXIT HUP INT TERM

トラップや停電に陥ることはできませんkill -KILL

私はあなたがしていることが本当にうまくいくかどうか疑問に思います。この情報はシステムログに記録されます。kill -KILLそこにも入ることができ、もっと信仰が行きました。このコマンドは、last最後のログ交換以降のすべての過去および現在のセッションの開始日、終了日、およびソース(エンドポイントまたはIPアドレス)を表示します。

関連情報