Como definir SHELL = / bin / bash globalmente para o cron

1

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:

  • Adicionando a linha em /etc/crontab efetua apenas o / etc / crontab em si nem todos os usuários
  • Adicionando a /etc/sysconfig/crond e reinicie o cron
  • Adicionando a /etc/environment e cron restart
  • Adicionou session required pam_env.so readenv=1 a /etc/pam.d/crond e reinicie o cron
  • Linha adicionada a /etc/default/cron e outra reinicialização

Como definir o padrão do cron SHELL como bash?

    
por lzc 09.09.2016 / 18:37

2 respostas

2

Não há como definir um shell padrão global para trabalhos agendados.

    
por 25.09.2016 / 21:54
1

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.

    
por 09.09.2016 / 21:59