每次我登录和解锁会话时如何运行脚本


4

在Saucy salamander中,我每次登录时都需要运行一个脚本,然后在手动锁定或自动睡眠后每次解锁会话时都需要运行一个脚本。我不能为此使用“启动应用程序”,因为它不会在解锁时触发。


Answers:


7

找到了这个,它是由Ubuntu论坛用户opus1制造的。也许可以帮上忙。


这是该帖子提供的解决方案:

对于感兴趣的任何人,这是我的工作:我查看了日志(特别是/var/logs/auth.log),并发现在检查并接受密码时会进行输入。我的日志说:

Aug  7 14:10:57 mumble gnome-screensaver-dialog: gkr-pam: unlocked login keyring

最终,我找到了一个名为“ Swatch”的应用程序,该应用程序为您监视日志,并在该日志中出现您指定的字符串时运行脚本。Swatch需要一个配置文件(.swatchrc),而我的看起来像这样:

watchfor /unlocked login keyring/
  exec /root/.gnome2/nautilus-scripts/wakeServer

其中“ / unlocked登录密钥环/”是要查找的字符串,“ exec”定义了找到脚本后要运行的脚本。我的wakeServer脚本如下所示:

#!/bin/bash

#wake the server
wakeonlan AA:BB:CC:DD:EE:FF

#record info in the log file
myVar="woke server at login:"
echo "$myVar">>/home/me/.serverWake.log
date>>/home/me/.serverWake.log

其中“ AA:BB:CC:DD:EE:FF”是我的服务器的MAC地址。

需要将Swatch作为启动应用程序输入(在“系统|首选项|启动应用程序中创建一个名为“ runSwatch”的条目,并执行命令“ swatch --tail-file /var/log/auth.log --daemon”) (在Debian中,只有root可以读取日志,因此启动命令必须以“ sudo”开头,并且需要将swatch添加到sudoers文件中,而无需输入密码。在Ubuntu中,似乎非root用户可以读取日志。授予对样本无密码访问权限可能存在安全问题,但在我看来,这是可以接受的。

到目前为止,它运行良好!


谢谢GabrielF。我现在必须了解dbus-monitor之后的命令...
有用的

链接不使用dbus-monitor。您找到了其他解决方案?
GabrielF 2014年

@GabrielF HAAAA感谢队友像魔术一样工作,这正是我在寻找的东西:D
zulucoda 16-10-16

由于某些原因,/ var / logs / auth.log在我的Ubuntu 17.10上不存在。我不喜欢这个答案,因为当Gnome应该提供一种在解锁时运行用户提供的命令的方式时,它需要安装一个特殊的程序包Swatch,并理解低级的东西,而与启动脚本分开。至少unix.stackexchange.com/a/28183/21372使用了似乎已经安装的dbus-monitor,但是仍然需要一些低级知识才能在启动脚本中在后台运行它。
bgoodr

我正在使用ubuntu 16.04,该文件auth.log不存在,/var/logs/auth.log但位于/var/log/auth.log
KorelK

0

.bashrc将是您要用于该过程的地方。 .bashrc拥有用户的配置文件和所有配置,这就是系统在您登录时会首先读取的内容,因此,您要在其中放置代码以供自定义脚本在登录时运行。

这是我使用的代码示例。这是我添加到.bashrc最底行的代码:

if [ -f ~/.myscripts ]; then
. ~/.myscripts
fi

并将.myscripts我的脚本保存在bash shell中,以便在登录时将其解雇。


抱歉,虽然〜$ ls -aF .my * .myscripts *无效,但我将引用添加到.bashrc。我尝试用强制提示色来调整.bashrc只是为了看看它是如何工作的,我什至不需要注销就可以看到更改,只需关闭然后重新打开终端即可。当我跑步时。来自终端的/.myscripts脚本可以正常运行,但是当我登录锁定的tty7时不会触发该脚本。
2014年

我相信我开始理解。这可能与GabrielF给出的以下链接一起起作用。谢谢法伦。
有用的

5
当您锁定或登录图形会话时,.bashrc不是源。
Braiam 2014年

是的,但最终我了解到它是一个可以启动驻留脚本(将监视登录的脚本)的地方。的其他人提出了不同的解决方案:/etc/pm/sleep.d/20_kill-notify-osd bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/...
有用的

支持@Braiam指出何时在锁定或通过图形记录时未提供其来源。难怪为什么我的脚本很少能正常运行。
法伦2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.