Dave Jacoby Asked: 2014-09-06 06:27:19 +0800 CST2014-09-06 06:27:19 +0800 CST 2014-09-06 06:27:19 +0800 CST 是否有一种可编程的方式来判断屏幕是否被新的 Unity 界面锁定? 772 我的 crontab 中有很多东西,包括一些与我的屏幕对话的东西。如果我不在那里通知它,我真的不希望它运行。 有没有一种方法可以检查计算机是否已锁定,以便在我不在办公桌前时阻止它执行操作?或者,只有当我不在办公桌前时才做其他事情? 是的,我之前问过这个问题。我现在在Ubuntu 14.04和Unity上,环境变了。当我运行时gnome-screensaver-command -q,我知道The screensaver is inactive工作站是否被锁定。新的环境需要新的答案。 unity 1 个回答 Voted Best Answer muru 2014-09-06T13:10:22+08:002014-09-06T13:10:22+08:00 我查看了提及unity( apt-cache search unity) 的包,忽略了名称中带有lib、lens等的任何内容。unity-services引起了人们的注意。此包中的文件之一是/usr/share/upstart/sessions/unity-panel-service-lockscreen.confUpstart 作业,其中包含: description "Backing Service for the Unity Panel" author "Andrea Azzarone <[email protected]>" start on desktop-lock stop on desktop-unlock respawn exec /usr/lib/unity/unity-panel-service --lockscreen-mode 您可能已经猜到,该作业在屏幕锁定时运行。这为您提供了几个选项: 检查exec行中的命令是否正在运行: 检查是否/usr/lib/unity/unity-panel-service正在运行--lockscreen-mode选项。请注意,unity-panel-service它始终在运行,但是当您锁定屏幕时,另一个实例会使用该选项启动。所以像: if pgrep -cf lockscreen-mode then # do stuff fi pgrep -f搜索完整的命令行,因此我们可以搜索选项。 我认为在这种情况下,联机帮助页是unity-panel-service错误的或已过时。它说: unity-panel-service没有选项。 使用 Upstart 工作 您可以使用上述作业配置来编写您的 Upstart 作业。创建一个会话作业(比如some-job)~/.config/upstart/some-job.conf,其中包含: description "Some script to be run when screen gets locked" start on desktop-lock stop on desktop-unlock script # do stuff end script start交换了和事件的逆向脚本stop可用于在屏幕解锁时运行。
我查看了提及
unity
(apt-cache search unity
) 的包,忽略了名称中带有lib
、lens
等的任何内容。unity-services
引起了人们的注意。此包中的文件之一是/usr/share/upstart/sessions/unity-panel-service-lockscreen.conf
Upstart 作业,其中包含:您可能已经猜到,该作业在屏幕锁定时运行。这为您提供了几个选项:
检查
exec
行中的命令是否正在运行:检查是否
/usr/lib/unity/unity-panel-service
正在运行--lockscreen-mode
选项。请注意,unity-panel-service
它始终在运行,但是当您锁定屏幕时,另一个实例会使用该选项启动。所以像:pgrep -f
搜索完整的命令行,因此我们可以搜索选项。我认为在这种情况下,联机帮助页是
unity-panel-service
错误的或已过时。它说:使用 Upstart 工作
您可以使用上述作业配置来编写您的 Upstart 作业。创建一个会话作业(比如
some-job
)~/.config/upstart/some-job.conf
,其中包含:start
交换了和事件的逆向脚本stop
可用于在屏幕解锁时运行。