Executando cron.daily em paralelo

2

Ser capaz de colocar um script em /etc/cron.daily é muito bom porque eu posso fazer isso facilmente a partir de um sistema de gerenciamento de configuração ou de um pacote. No entanto, meu entendimento é que todas as entradas em /etc/cron.daily serão executadas sequencialmente. Como posso fazer um script em /etc/cron.daily não suportar as outras tarefas? Alguma coisa como o seguinte trabalho?

#!/bin/bash
#do something long:
nohup sleep 1000000000 &;#instead of sleep, this could point to another script that takes a while to execute
    
por Daniel 04.03.2014 / 16:52

2 respostas

3

Sim, se você detalhar o processo no script, o próximo será iniciado. Scripts em /etc/cron.daily são executados por run-parts (de man cron ):

Support for /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly and /etc/cron.monthly is provided in Debian through the default setting of the /etc/crontab file (see the system-wide example in crontab(5)). The default sytem-wide crontab contains four tasks: run every hour, every day, every week and every month. Each of these tasks will execute run-parts providing each one of the directories as an argument. These tasks are disabled if anacron is installed (except for the hourly task) to prevent conflicts between both daemons.

Então, você pode simular executando manualmente. Por exemplo:

$ ls /etc/cron.daily/
test1  test2
$ cat test1
#!/bin/bash
echo starting 1  >> /tmp/haha
sleep 1000000000 & 
$ cat test2
#!/bin/bash
echo starting 2  >> /tmp/haha
sleep 1000000000 &

$ sudo run-parts /etc/cron.daily
$ cat /tmp/haha
starting 1
starting 2

No exemplo acima, criei dois scripts que simplesmente executam sleep 1000000000 & . Por causa do & , o processo é enviado para o segundo plano e run-parts passa para o próximo script. Portanto, nohup não é necessário, tudo que você precisa é o & no final da linha que levará um tempo.

    
por 04.03.2014 / 17:29
-1

Sim. É apenas um script para que você possa fazer o que quiser.

    
por 04.03.2014 / 17:07

Tags