如何为 cron 全局设置 SHELL=/bin/bash

如何为 cron 全局设置 SHELL=/bin/bash

通过BASH_ENV分配,/etc/environment我注意到它不会影响 cron 作业。

我发现SHELL=/bin/bash在用户的 crontab 中添加就可以了!是的!如果我只是添加(到 crontab):

SHELL=/bin/bash

... 有用。我以 root 身份进入并执行简单的操作:

sed -i 1iSHELL=/bin/bash /var/spool/cron/*

但是,我希望将此设置设为全局(或默认设置)。

是否可以将默认的 cron SHELL 设置为 bash?

我已经尝试过以下方法,但都没有成功:

  • 添加行/etc/crontab 仅影响 /etc/crontab 本身并非所有用户
  • 添加/etc/sysconfig/crond并重新启动 cron
  • 添加/etc/environment并重新启动 cron
  • 添加session required pam_env.so readenv=1/etc/pam.d/crond并重新启动 cron
  • 添加行/etc/default/cron并再次重新启动

如何将默认的 cron SHELL 设置为 bash?

答案1

无法为 cron 作业设置全局默认 shell。

答案2

另一种方法是,如果您从 crontab 运行 shell 脚本,那么您可以将其放在脚本的顶部。

#!/bin/bash -l

这将使它像一个登录 shell。

相关内容