Como posso iniciar um desligamento com cron, somente se nenhum download estiver em andamento?

3

Eu gostaria de desligar meu computador por volta das doze e meia todos os dias e posso fazer isso com "echo" 30 0 * * * / sbin / shutdown -h now "> myrootcron.sh", mas e se eu quiser cancelar esse desligamento ou deixá-lo fora porque tenho um download em andamento?

    
por user179732 30.09.2014 / 21:56

1 resposta

3

Eu não sei o que é todo o seu material echo , mas se você quiser apenas verificar se um determinado processo está em execução, você pode usar pgrep em sua programação. Isso retornará 0 if se encontrar um processo que corresponda.

Estou assumindo que você está baixando com wget , mas você pode simplesmente mudar isso para qualquer processo que espera ver vivo (use htop para inspecionar o sistema durante o download, se não tiver certeza.)

30 0 * * *    pgrep wget >/dev/null || shutdown -h now

Se (como acima) você só estiver executando isso uma vez por dia e ele não for acionado devido a um download, ele não será desativado até o dia seguinte. Você pode alterar isso para executá-lo a cada hora entre as 00:30 e as 07:30:

30 0-7 * * *    pgrep wget >/dev/null || shutdown -h now
    
por Oli 30.09.2014 / 22:16

Tags