Come posso vedere / sospendere le attività correnti di crontab?

19
  1. Come posso vedere le attività di crontab in corso?
  2. Come faccio a interrompere le attività di crontab che sono in corso, manualmente?
% Bl0ck_qu0te%

Si

% Bl0ck_qu0te%

Avevo pensato a pkill / killall, ma alcuni dei miei comandi nel file crontab sono rispettivamente! significa che dopo aver terminato un comando, verrà avviato il prossimo! ad esempio:

sudo crontab -e

00 10 * * * /usr/bin/wget LINK ; shutdown -h now

Quindi, se uccido wget, il computer verrà spento !!! - & gt; Voglio uccidere un compito cron completamente, non una parte di esso!

il prossimo problema pkill: che dire degli script? (Ho importato alcuni script di bash in crontab -e) - & gt; % Co_de%

    
posta mini 26.06.2013 - 19:31

2 risposte

38

In primo luogo, usa solo un comando per riga in crontab. Cambia questa linea crontab:

00 10 * * * /usr/bin/wget LINK ; shutdown -h now

quindi sembra:

00 10 * * * /path/to/my/crontab/script1.sh

e crea /path/to/my/crontab/script1.sh con questo contenuto:

#!/bin/bash
/usr/bin/wget LINK
shutdown -h now

Ovviamente, non dimenticare di dargli il permesso di esecuzione:

chmod +x /path/to/my/crontab/script1.sh

In secondo luogo, puoi vedere le attività di crontab in esecuzione, in un formato utile e leggibile, nell'output di:

ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"

Saranno visualizzati nelle prime righe, qualcosa del genere:

1108  1108 cron
4288  1108 \_ CRON
4289  4289     \_ /bin/sh -c /path/to/my/crontab/script1.sh
4290  4289         \_ /bin/bash /path/to/my/crontab/script1.sh
4295  4289             \_ /usr/bin/wget LINK

La prima colonna è PID, la seconda è Session ID e la terza è il comando avviato da cron. Puoi uccidere tutti i processi relativi a una specifica attività cron utilizzando l'ID sessione, quindi nell'esempio precedente dovresti eliminare l'ID sessione 4289:

pkill -s 4289
    
risposta data Eric Carvalho 29.06.2013 - 15:05
0

Per uccidere un processo manualmente, un modo è utilizzare pkill . pkill interromperà tutti i processi che hanno il seguente schema nel suo nome. per esempio per interrompere tutti i processi di wget utilizzare:

sudo pkill wget
    
risposta data Mohammad Etemaddar 26.06.2013 - 21:21

Leggi altre domande sui tag