5

我想创建自己的个人日志文件,不仅在我登录和注销时记录,而且在我锁定/解锁屏幕时记录。有点像类固醇上的 /var/log/wtmp。

为此,我决定在登录 Ubuntu 时运行一个脚本,该脚本在后台运行,直到我退出。我的计划是在脚本中添加脚本.bashrc,使用./startlogging.sh &和在我将trap用来捕获信号的脚本中。太好了,除了.bashrc每次我打开一个新终端时都会运行,这不是我想要的记录器。

有没有办法在 Bash 中告诉当前登录是 gnome 登录?或者,是否有某种.gnomerc我可以用来运行我的脚本?

编辑:这是我的脚本:

编辑 2:删除了脚本,因为它与问题无关。我将重新发布我的另一个问题,而不是重新利用这个问题。

4

3 回答 3

4

您是否正在寻找一种方法来检测它是什么类型的终端?

尝试:

echo $TERM

来自维基百科

TERM(类Unix)- 指定正在使用的计算机终端或终端仿真器的类型(例如,vt100 或dumb)。

另请参阅:终端仿真器列表

于 2012-12-18T20:24:15.880 回答
0

对于 bash 使用:~/.bash_logout

这将在您注销时执行,这听起来像您正在尝试做的事情。

于 2012-12-18T20:59:22.043 回答
0

好吧,对于bash ,你想要的是.bash_login/.bash_logout在你的主目录(而不是.bashrc或其他网络登录)。这些不是为在您创建的终端窗口中运行而创建的 bash 进程运行的(因为它们不是登录 shell),因此在您打开新终端时不会运行。

问题是,如果您使用不涉及终端的某种机制登录(例如在控制台上运行 gdm 以启动 gnome 或 kde 或统一会话),则没有登录 shell,因此 .bash_login/logout 永远不会运行。对于这种情况,最简单的方法可能是在您的 . 中放置一些东西.xsessionrc,它会在您每次启动 X 会话时运行(对于任何这些 GUI 环境都会发生这种情况,无论您运行哪个环境)。不幸的是,当 X 会话结束时没有运行标准脚本。

于 2012-12-18T21:25:29.250 回答