【问题标题】:Run script on startup not working if used with watch command如果与 watch 命令一起使用,则在启动时运行脚本不起作用
【发布时间】: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 必须启动这个脚本,你必须明白这是我用例的一个最小示例

标签: bash unix cron


【解决方案1】:

我解决了在位于/etc/rc.local 的文件中写入bash /root/run.sh 的问题。现在一切正常,但我想知道为什么我不能通过@reboot 将它放入 cronjob 列表中@

【讨论】:

    猜你喜欢
    • 2013-10-04
    • 2020-01-02
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多