5

ログインおよびログアウト時だけでなく、画面のロック/ロック解除時にもログを記録する独自の個人用ログファイルを作成したいと考えています。ステロイドの /var/log/wtmp のようなものです。

これを行うために、Ubuntu にログインするときに、終了するまでバックグラウンドで実行されるスクリプトを実行することにしました。これを行う私の計画は、信号をキャッチするために使用するスクリプトで.bashrc、 を使用してスクリプトを追加することです。新しいターミナルを開くたびに実行されることを除いて、それは素晴らしいことです。これは、ロガーに必要なものではありません。./startlogging.sh &trap.bashrc

現在のログインがgnomeログインであることをBashで伝える方法はありますか? または、.gnomercスクリプトを実行するために使用できるものはありますか?

編集:これが私のスクリプトです:

編集 2:質問とは関係ないため、スクリプトを削除しました。この質問を転用するのではなく、他の質問を再投稿します。

4

3 に答える 3

4

端末の種類を検出する方法をお探しですか?

試す:

echo $TERM

ウィキペディアから:

TERM (Unix ライク) - 使用されているコンピューター端末または端末エミュレーターのタイプを指定します (例: vt100 またはダム)。

参照:端末エミュレータのリスト

于 2012-12-18T20:24:15.880 に答える
0

bashの使用:〜/ .bash_logout

ログアウトすると実行されます。これは、実行しようとしていることのように聞こえます。

于 2012-12-18T20:59:22.043 に答える
0

まあ、ちょうど bash の場合、必要なのは.bash_login/.bash_logoutではなくホームディレクトリにあります.bashrcこれらは、ログインシェルが開始/終了するたびに実行されます。これは、(tty またはコンソールで、または ssh を介して) シェルにログインするたびに発生しますまたは他のネットワーク ログイン)。これらは、作成したターミナル ウィンドウで実行するために作成された bash プロセスに対しては実行されないため (これらはログイン シェルではないため)、新しいターミナルを開いたときに実行されることはありません。

問題は、端末を必要としない何らかのメカニズム (コンソールで gdm を実行して gnome、kde、または unity セッションを開始するなど) でログインすると、ログイン シェルがないため、.bash_login/logout が実行されないことです。その場合、おそらく最も簡単な方法は.xsessionrc、X セッションを開始するたびに実行される何かを に配置することです (これは、実行する GUI 環境に関係なく、これらの GUI 環境のいずれでも発生します)。残念ながら、X セッションの終了時に実行される標準スクリプトはありません。

于 2012-12-18T21:25:29.250 に答える