Come avviare un processo cron senza riavviare?


11

Uso un cron job per chiamare offlineimapogni 2 minuti:

*/2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Avevo bisogno di terminare il lavoro cron per risolvere un problema. Come posso quindi riavviare il processo cron (senza riavviare)? Ho trovato questa 'soluzione' online:

mylogin@myhost:~$ sudo /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop cron ; start cron. The restart(8) utility is also available.
cron stop/waiting
cron start/running, process 26958

Tuttavia, usando ps -ef | grep ..., non vedo il lavoro ... Cosa c'è che non va?


Quale lavoro non riesci a vedere?
Spack

1
Apri il tuo crontab, commenta quel lavoro, esegui la tua manutenzione e poi decommentalo ...
jasonwryan,

Risposte:


12

Approccio cron

Se si dispone dei privilegi di sudo, è possibile interrompere / avviare il servizio cron. Credo sia quello che spiegava quella soluzione che hai trovato online.

A seconda della distro Linux che stai utilizzando, puoi eseguire questi comandi:

# redhat distros
$ sudo /etc/init.d/crond stop
... do your work ...
$ sudo /etc/init.d/crond start

Oppure esegui questi comandi:

# Debian/Ubuntu distros
$ sudo service cron stop
... do your work ...
$ sudo service cron start

Blocca l'approccio del tipo di file

Puoi anche inserire un file "dontrunofflineimap" nella directory / tmp quando vuoi che l'attività offlineimap venga trattenuta e non venga eseguita per un po '.

Il processo funzionerebbe in questo modo. Toccate un file in / tmp in questo modo:

touch /tmp/dontrunofflineimap

Il cron job verrebbe modificato in questo modo:

*/2 * * * * [ -f /tmp/dontrunofflineimap ] || /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

Mentre quel file esiste, essenzialmente bloccherà l' offlineimapesecuzione dell'app. Quando vuoi che riprenda, elimina semplicemente il /tmp/dontrunofflineimapfile.


4

Un'altra soluzione è modificare il crontab e commentare il lavoro per disabilitarlo. È un po 'più bello come cronpotrebbe essere la pianificazione di altri lavori.

Il seguente comando aiuta:

crontab -e

Se si tratta del crontab di root e non dell'utente:

sudo crontab -e

Per commentare il lavoro, aggiungere #a all'inizio della riga. Come questo:

# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

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.