使用“xautolock”运行脚本,解锁后使用“ffmpeg”捕获图像

使用“xautolock”运行脚本,解锁后使用“ffmpeg”捕获图像

我正在使用i3wm,并且希望在解锁屏幕后运行脚本。当我手动锁定屏幕时,我可以让它工作,例如使用中概述的步骤 这个帖子

但在我的屏幕自动解锁后,我无法让它工作,例如通过xautolock.例如,

xautolock -time 5 -locker "blurlock -n && my_script.sh"

不起作用 – 5 分钟后屏幕锁定,但解锁后脚本不运行。事实上,它似乎根本没有运行。

有什么方法可以让它发挥作用吗?也许使用xss-lock或类似?

编辑

根据评论中@aviro的建议,我将脚本更改为

#!/usr/bin/bash
echo "Hello" >> $HOME/temp.txt
blurlock -n
echo "Unlocked" >> $HOME/temp.txt

然后就跑了xautolock -time 1 -locker "my_script.sh &"。屏幕锁定,文件temp.txt包含脚本中的两行。因此,在xautolock.

我希望我的脚本执行的部分操作是通过ffmpeg.我将脚本更改为以下内容:

#!/usr/bin/bash
blurlock -n 
ffmpeg -f video4linux2 -s vga -i /dev/video-cam $HOME/Pictures/test.jpg 
notify-send -t 30000  'Unlocked'

这在手动运行时有效 - 屏幕被锁定,解锁后会弹出一条通知,显示“已解锁”,并且来自网络摄像头的图像将按照指定写入到文件中。

但通过 运行时xautolock -locker "my_script.sh",解锁后,没有图像捕获或通知。由于我从终端运行xautolock(并将其发送到后台&),我收到以下消息

[1]  + 581665 suspended (tty output)  xautolock -time 1 -locker "my_script.sh"

添加> /dev/null 2>&1ffmpeg命令也没有帮助。

答案1

经过大量实验后,我相当确定在命令nohup之前使用ffmpeg可以解决问题。也就是说,上面的行my_script.sh应该改为:

nohup ffmpeg -f video4linux2 -s vga -i /dev/video-cam $HOME/Pictures/test.jpg > /dev/null 2>&1

相关内容