我想创建自己的个人日志文件,不仅可以在我登录和退出时记录,还可以在我锁定/解锁屏幕时记录。有点类似/ var / log / wtmp类固醇。
为此,我决定在登录到后台运行的Ubuntu时运行脚本,直到我退出。我这样做的计划是使用.bashrc
将脚本添加到./startlogging.sh &
,在脚本中我将使用trap
来捕获信号。这很好,除了.bashrc
每次打开一个新终端时都会运行,这不是我想要的记录器。
有没有办法告诉Bash当前登录是gnome登录?或者,我可以使用某种.gnomerc
来运行我的脚本吗?
修改:这是我的脚本:
编辑2:删除了脚本,因为它与问题无关。我将重新提出我的另一个问题,而不是重新利用这个问题。
答案 0 :(得分:4)
您是否正在寻找一种方法来检测它是什么类型的终端?
尝试:
echo $TERM
来自Wikipedia:
TERM(类Unix) - 指定计算机终端或终端的类型 正在使用的模拟器(例如,vt100或哑)。
答案 1 :(得分:0)
用于bash:〜/ .bash_logout
将在您退出时执行,这听起来就像您要尝试的那样。
答案 2 :(得分:0)
好吧,对于bash,你想要的是你的主目录中的.bash_login
/ .bash_logout
(而不是.bashrc
)这些都是在LOGIN shell启动/完成时运行的,这发生了任何时候您登录到shell(在tty或控制台上,或通过ssh或其他网络登录)。这些不是为在您创建的终端窗口中创建的bash进程运行的(因为它们不是登录shell),因此无论何时打开新终端都不会运行。
问题是,如果你使用一些不涉及终端的机制登录(例如在控制台上运行gdm以启动gnome或kde或unity会话),那么就没有登录shell所以.bash_login / logout从不跑。对于这种情况,最简单的可能是在.xsessionrc
中添加一些东西,每次启动X会话时都会运行(对于任何这些GUI环境都会发生,无论你运行哪一个)。不幸的是,X会话结束时没有标准脚本运行。