Não há como definir um shell padrão global para trabalhos agendados.
Com BASH_ENV
atribuído em /etc/environment
, notei que isso não afeta os trabalhos do cron.
Eu descobri que ter SHELL=/bin/bash
no crontab de um usuário faz o truque! Sim! Se eu simplesmente adicionar (ao crontab):
SHELL=/bin/bash
... funciona. Eu posso entrar como root e fazer um simples:
sed -i 1iSHELL=/bin/bash /var/spool/cron/*
No entanto, eu gostaria de ter essa configuração global (ou padrão).
É possível definir o padrão do cron SHELL como bash?
Eu já tentei o seguinte, nenhum dos quais fez o truque:
/etc/crontab
efetua apenas o / etc / crontab em si nem todos os usuários /etc/sysconfig/crond
e reinicie o cron /etc/environment
e cron restart session required pam_env.so readenv=1
a /etc/pam.d/crond
e reinicie o cron /etc/default/cron
e outra reinicialização Como definir o padrão do cron SHELL como bash?
Não há como definir um shell padrão global para trabalhos agendados.
Uma alternativa é que, se você estiver executando scripts de shell a partir do crontab, poderá colocar isso no topo do script.
#!/bin/bash -l
Isso fará com que funcione como um shell de login.