从另一个 shell 运行 cron 作业

从另一个 shell 运行 cron 作业

我想cron从特定的 shell (Zsh) 运行脚本。我认为以下方法会起作用:

00 02 * * * exec zsh; /path/to/script.sh

但显然没有,为什么?

这也让我想知道,我怎样才能找到什么初始化脚本cron在运行 crontab 中的条目之前是否先运行?

答案1

怎么样:

00 02 * * * exec /usr/bin/zsh /path/to/script.sh

这将告诉 zsh 运行该脚本。现在你希望它在 zsh 中运行,没关系,只需在开始处添加 shebang 即可:

#!/usr/bin/zsh
the_rest

答案2

Cron 在 中配置了几个环境变量/etc/crontab,特别是SHELLPATHSHELL的默认值为/bin/sh。因此,除非在脚本中更改或以其他方式指定,否则cron将使用sh.

相关内容