【发布时间】:2020-10-31 14:57:57
【问题描述】:
我有一个名为 /root/run.sh 的文件,其中编写了以下代码
/usr/bin/watch -n1 "echo hello >> /root/out.txt"
如果我以以下方式在终端中手动启动它
bash /root/run.sh
一切正常。
现在我希望每次启动我的操作系统时都会调用这个文件,所以我通过crontab -e修改了cronjob文件并添加了以下行:
@reboot bash /root/run.sh
不幸的是,它不起作用,这意味着重启后它不会在out.txt文件中写入'hello'。
如果我按以下方式修改run.sh 脚本:
echo hello >> /root/out.txt
然后一切正常,这意味着重启后它会在out.txt 文件中写入一次“hello”一词。
如何使用 cronjob 执行 watch 命令?
【问题讨论】:
-
尝试指定
watch的完整路径 -
@jordanm 已经尝试过但同样的问题。我更新了我的问题
-
为什么要使用 cron 来运行 watch 命令? watch 的目的是全屏显示命令的结果并不断更新;如果您将输出重定向到一个文件并将其置于后台(就像您使用 cron 所做的那样),那么首先确实没有理由使用 watch。
-
@RobertoHernandez 为什么我必须通过重新启动将 watch 命令与 cronjob 一起使用并不重要。我只是需要它。 watch 命令的目的是每 x 秒重复一次任务,并且输出完成的位置(在屏幕上、文件上……)无关紧要。我的 cronjob 必须启动这个脚本,你必须明白这是我用例的一个最小示例