crontab /etc/profile.d

crontab /etc/profile.d

我有一个 crontab 脚本,它可以在交互式 shell 中正常运行。但是,当从 crontab 运行时,它会失败,因为它不会运行 /etc/profile.d/ 中的脚本(例如 /etc/profile.d/java.sh)

修复此问题的最佳方法是什么?

答案1

使用以下命令开始 shell 脚本:

#!/bin/bash -l

这会导致 bash 作为登录 shell 启动,这意味着它将读取 /etc/profile 和 ~/.bash_profile。

答案2

在你的 crontab 上设置 SHELL:

SHELL=/bin/bash
* * * * * # your_job

相关内容