我有一项任务定义在导师我想从 每小时调用一次/etc/cron.hourly
。我可以手动运行它,但不能从 运行run-parts
:
$ sudo supervisorctl start my-task
-- 作品
# . /etc/cron.hourly/my-script
-- 作品
$ sudo run-parts --report --test /etc/cron.hourly
--my-script
按预期列出
$ sudo run-parts --report /etc/cron.hourly
-- 失败,原因如下:
/etc/cron.hourly/my-script:
run-parts: failed to exec /etc/cron.hourly/my-script: No such file or directory
run-parts: /etc/cron.hourly/my-script exited with return code 1
的内容/etc/cron.hourly/my-script
为:
#!/bin/sh
/usr/bin/supervisorctl start my-task
我已经确认:
- 权限、文件名和shebang
my-script
是正确的 - 我使用完整路径
supervisorctl
cron 脚本运行于17分钟过去-- 此时
/var/log/syslog
内容如下:(root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jun 14 10:17:01 DevAPps postfix/sendmail[16202]: fatal: open /etc/postfix/main.cf: No such file or directory
我错过了什么?
答案1
我my-script
在 Windows 上创建,因此 shebang 是正确的,但是有一个 Windows 行结尾。这将导致 cron 脚本失败。在 Ubuntu 上重新创建脚本(以及chmodding
它等)解决了该问题。