Executando um cron job de outro shell

1

Eu gostaria que cron executasse um script de um shell específico (Zsh). Eu pensei que o seguinte funcionaria:

00 02 * * * exec zsh; /path/to/script.sh

mas aparentemente não, por quê?

Isso também me fez pensar, como descobrir quais shell e scripts de init são executados cron antes de executar a entrada no crontab?

    
por Josh 27.04.2014 / 21:46

2 respostas

4

Que tal:

00 02 * * * exec /usr/bin/zsh /path/to/script.sh

Isso dirá ao zsh para executar o script. Agora você quer que seja executado em zsh não importa o que, basta adicionar o shebang no começo:

#!/usr/bin/zsh
the_rest
    
por 27.04.2014 / 21:52
3

O Cron tem várias variáveis ambientais configuradas em /etc/crontab , especificamente SHELL e PATH . O valor padrão para SHELL é /bin/sh . Portanto, a menos que isso seja alterado ou especificado de outra forma em um script, cron executará comandos usando sh .

    
por 27.04.2014 / 21:57

Tags