我有一个 actiona 程序,我想在我的 Ubuntu 笔记本电脑上每小时运行一次。
actiona -s -E -C -Q -e -x '/home/myusername/actionatest.ascr'
我在终端上测试了它并且它可以工作。
但是当我尝试将其放入 cron 中时,如下所示:
* * * * * actiona -s -E -C -Q -e -x '/home/myusername/actionatest.ascr'
它没能运行。
我已经制作了脚本,当我从终端执行它时,脚本正在运行。但是当我把它放在 cron 中时,脚本根本没有运行
我已经尝试了调试代码,这是我从终端运行脚本时显示的内容
+ source /home/myusername/.bashrc ++ case $- in ++ return + actiona -s -E -C -Q -e -x /home/myusername/actiona/actionatest.ascr
这是 /tmp/log 的输出
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.
我感觉这个错误是由我应该做但却没有做的某些简单步骤导致的。
答案1
明智的做法是在你的主目录中创建脚本,如下所示:
#!/bin/bash
source /home/myusername/.bashrc
actiona -s -E -C -Q -e -x '/home/myusername/actionatest.ascr'
使其可执行
chmod 755 /home/myusername/script
并将其添加到 cron 中
* * * * * /home/myusername/script
但请注意,您每分钟都会运行该程序,因此最好调整执行计划。
要调试脚本,您可以通过以下方式修改它:
#!/bin/bash
set -x
source /home/myusername/.bashrc >>/tmp/log
actiona -s -E -C -Q -e -x '/home/myusername/actionatest.ascr' >>/tmp/log
并检查文件/tmp/log
以获取更多信息