Come posso vedere / interrompere le attività crontab attualmente in esecuzione?


20
  1. Come posso vedere le attività crontab che sono in corso?
  2. Come posso interrompere manualmente le attività crontab in corso?

[Questa] domanda su come vedere i processi cron attualmente in esecuzione?

Per terminare manualmente un processo in un modo è usare pkill

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! per esempio:

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

Quindi, se uccido wget, il computer verrà spento !!! -> Voglio uccidere completamente un'attività cron, non una parte di essa!

Il prossimo pkillproblema: che dire degli script? (Ho importato alcuni script bash in crontab -e) ->sudo pkill ???


Hai domande su come visualizzare i processi cron attualmente in esecuzione? o l'elenco dei cron-lavori? Modifica la tua domanda per essere più chiari al riguardo. Per interrompere l'esecuzione cron-job vai ( askubuntu.com/q/272419/66980 )
Mohammad Etemaddar,

Modificato; 1. sì, guardando i processi cron attualmente in esecuzione? (Voglio portare i processi in primo piano); 2. Quindi, voglio fermarlo manualmente ?! (non dal programma crontab)
mini

Il modo migliore per aggiungere ulteriori informazioni alla tua domanda è modificarlo, con il pulsante Modifica . È meglio visibile in questo modo e i commenti sono principalmente per scopi secondari e temporanei. I commenti vengono rimossi in varie circostanze. Qualunque cosa importante per la tua domanda dovrebbe essere nella domanda stessa.
Guntbert,

Risposte:


42

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

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

quindi sembra che:

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

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

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

Certo, non dimenticare di dargli il permesso di esecuzione:

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

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

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

Appariranno 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 è l'ID sessione e la terza è il comando avviato da cron. Puoi uccidere tutti i processi relativi a un'attività cron specifica usando l'ID sessione, quindi nell'esempio sopra dovresti uccidere l'ID sessione 4289:

pkill -s 4289

1
Ottengo questo quando sh ps: cmd: keyword not found ps: illegal argument: afx
eseguo il

quindi cron non offre un modo "pratico" per mostrare i suoi processi?
Cirelli94,

@alecrust: prova questops -o pid,sess,cmd -afx | egrep "( |/)cron( -f)?$"
Bulrush,

0

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

sudo pkill wget

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 successivo! per esempio: sudo crontab -e=> 00 10 * * * /usr/bin/wget LINK ; shutdown -h now=> Quindi, se uccido wget , il computer verrà spento !!! -> Voglio uccidere completamente un'attività cron, non una parte di essa! il prossimo problema pkill: che dire degli script? (Ho importato alcuni script bash in crontab -e) ->sudo pkill ???
mini

0

cambia il tuo cronjob in questo modo

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

Questo dovrebbe funzionare, perché &&significa che il secondo comando viene eseguito solo quando il primo è stato completato correttamente (restituendo lo stato 0 alla console / sistema), il che non dovrebbe essere il caso (perché il processo è stato ucciso dall'utente e dovrebbe restituire un altro valore quindi 0).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.