我有一个 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