É necessário reiniciar o cron ou o crond após cada nova adição ou modificação do cronograma?

26

Quando eu programo um trabalho, alguns parecem ser aplicados imediatamente, enquanto outros após uma reinicialização. Por isso, é recomendado reiniciar o cron ( crond ) após adicionar um novo trabalho cron? Como fazer isso corretamente (especialmente em um sistema Debian), e isso deve ser feito com sudo (como sudo service cron restart ) mesmo para os usuários normais?

Eu tentei:

/etc/init.d/cron restart

que parece não funcionar (nem /etc/init.d/cron stop ou service cron stop ) e completa com o código de retorno 1.

Aqui está uma parte da saída da mensagem:

Since the script you are attempting to invoke has been converted to an Upstart job, you may also use the stop(8) utility, e.g. stop cron stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.91" (uid=1000 pid=3647 comm="stop cron ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

(o que isso significa?)

    
por precise 30.01.2014 / 09:38

2 respostas

18

Não, você não precisa reiniciar o cron , ele notará as alterações em seus arquivos crontab ( /etc/crontab ou um arquivo crontab de usuários).

No topo do seu / etc / crontab você provavelmente tem (se você tem a implementação Vixie de cron que o IIRC é o que está no Debian):

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the 'crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

O motivo pelo qual você pode não ver alterações específicas implementadas é se você adicionar itens a /etc/cron.daily e a execução diária já ocorreu.

A mensagem que você recebe é porque você usa uma maneira antiga de reiniciar o cron em seu sistema. A maneira recomendada (mas não necessária se você simplesmente editar arquivos cron) é:

 restart cron

É claro que você precisa reinicializar para ver os efeitos de um trabalho cron do @reboot

    
por 30.01.2014 / 09:49
3

Uma reinicialização pode não ser necessária. Como Eu disse em meus comentários o editor de texto que você usou (aquele que foi designado para editar cron-jobs) para editar as necessidades da tarefa ser fechado ; apenas salvar o conteúdo não é suficiente . (Isso é o que eu experimentei. Editar tarefas via nano e salvar com Ctrl + O com o arquivo ainda aberto não aplica as edições imediatamente, mas somente após o editor é fechado com Ctrl + X .

E como mencionado em esta resposta (por terdon ) o daemon cron checa, a cada minuto, para ver se algum trabalho deve ser executado e aciona aqueles que ele precisa.

    
por 11.03.2014 / 17:16

Tags