所以我有以下 crontab 规则(它们被称为rules,对吗?)但是在 a.out 完成后, b.out 不会启动。
00 15 * * * /home/jesse/test/a.out && /home/jesse/test/b.out
Run Code Online (Sandbox Code Playgroud)
两者都是我自己用 C++ 创建的一些软件。a.out 大约需要 1.5 小时才能完成,b.out 不到一分钟。
如果我交换它们,首先是 b,然后是 a,它们都会运行。我已经检查过 a.out 是否在完成时返回 false 或 0,但 a/b 都返回 1。当我直接在终端中运行相同的命令时,两者都运行得很好。这让我相信这是一个 crontab 的事情。
这里发生了什么?是我的规则不正确还是运行时间太长?
Cron 应该毫无问题地做到这一点。但是,这&&意味着“仅当第一个命令成功退出时才执行第二个命令”。因此,如果第二个被忽略,那么很可能第一个失败,或者在任何情况下都以退出状态 != 0 退出。
因此,要么修复导致第一个命令失败的任何内容,要么更改 crontab 以便它一个接一个地运行一个命令,而不管它是否有效:
00 15 * * * /home/jesse/test/a.out; /home/jesse/test/b.out
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
680 次 |
| 最近记录: |