启动后 X 秒内终止进程

启动后 X 秒内终止进程

我经常遇到这样的情况,当我在笔记本电脑前开始思考某些事情时,屏幕锁就会启动 - 当我思考时我往往会冻结:) 然后我必须输入密码来解锁我的会话,然后我会在思考时再次冻结,然后再次重复整个过程:)我想这样我每年都会浪费大约一周的时间;)如果这件事从未发生在你身上,那就向我扔石头吧:)

所以,我想用它rofi -e "The screen is about to lock..."来显示警告,然后在 10 秒后slock执行。

我做了一些测试,当我打开两个终端时,我sleep 10; pkill rofi在其中一个终端中使用,rofi -e "The screen is about to lock..." || slock在第二个终端中使用。

如果我等待 10 秒,rofi 将被杀死并且 slock 将启动。如果我设法在 10 秒内做出反应并关闭 rofi,slock则不会运行。

我一直在尝试将此行为放入一个脚本中,该脚本将由xidle- 现在xidleslock在 300 秒后执行,但我想在执行之前收到此警告消息slock- 您介意帮助我实现此结果吗?

预先感谢所有好心人:)

答案1

你可以这样做GNUtimeout:

timeout 10s rofi -e "The screen is about to lock..." || slock

如果rofi在十秒内退出,slock则不会运行(假设rofi以退出代码 0 退出);否则,timeout将杀死它并以非零退出代码退出,因此slock将运行。

答案2

好的,我已经做到了:

rofi -e "The screen is about to lock..." & sleep 10; pkill rofi && slock

这个脚本被调用xidle

相关内容