LeM*_*ike 6 linux terminal ubuntu cron v4l2
我喜欢运行一个像这样快照凸轮的cron:
* 9-17 * * 1-5 vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path /home/foo/tmp/cam --scene-prefix snapshot --scene-format png vlc://quit --run-time=1
Run Code Online (Sandbox Code Playgroud)
但是当cron运行它时会抛出一个我不明白的错误:
** Message:
Failed to get session bus:
Error spawning command line 'dbus-launch --autolaunch=55644972b3c91c1d24d83d8252721f00 --binary-syntax --close-stderr':
Child process exited with code 1
Run Code Online (Sandbox Code Playgroud)
在网络上,我发现没有干净或良好的文档.你能帮我解决一下吗?
据我所知,您可能需要:
设置显示变量(注意它可能不是 0,可能是 1 甚至 2):
export DISPLAY=:0
Run Code Online (Sandbox Code Playgroud)
启动 dbus 会话:
dbus-launch
Run Code Online (Sandbox Code Playgroud)
设置 dbus 变量:
export $(dbus-launch)
Run Code Online (Sandbox Code Playgroud)
对于 Cron 作业,您可以设置环境变量,如下所示:
env VARIABLE=VALUE <command>
Run Code Online (Sandbox Code Playgroud)
因此,对于选项 1,您的工作将如下所示:
* 9-17 * * 1-5 env DISPLAY=:0 vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path /home/foo/tmp/cam --scene-prefix snapshot --scene-format png vlc://quit --run-time=1
Run Code Online (Sandbox Code Playgroud)
对于选项 2,您可以使用 && 分隔两个命令,如下所示:
* 9-17 * * 1-5 dbus-launch && vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path /home/foo/tmp/cam --scene-prefix snapshot --scene-format png vlc://quit --run-time=1
Run Code Online (Sandbox Code Playgroud)
选项 3 类似:
* 9-17 * * 1-5 export $(dbus-launch) &&vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path /home/foo/tmp/cam --scene-prefix snapshot --scene-format png vlc://quit --run-time=1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |