Bagaimana cara memulai pekerjaan cron tanpa reboot?

11

Saya menggunakan pekerjaan cron untuk menelepon offlineimapsetiap 2 menit:

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

Saya perlu membunuh pekerjaan cron untuk memperbaiki masalah. Bagaimana saya bisa memulai kembali pekerjaan cron (tanpa me-reboot)? Saya menemukan 'solusi' ini 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

Namun, menggunakan ps -ef | grep ..., saya tidak melihat pekerjaan ... Apa yang salah?

Marius Hofert
sumber
Pekerjaan mana yang tidak bisa Anda lihat?
Spack
1
Buka crontab, komentari pekerjaan itu, lakukan pemeliharaan, lalu batalkan komentar ...
jasonwryan

Jawaban:

12

Pendekatan cron

Jika Anda memiliki hak sudo, Anda dapat menghentikan / memulai layanan cron. Saya percaya itulah yang dijelaskan oleh solusi yang Anda temukan online.

Bergantung pada distro Linux yang Anda gunakan, Anda dapat melakukan perintah ini:

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

Atau lakukan perintah ini:

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

Pendekatan tipe file kunci

Anda juga bisa meletakkan file "dontrunofflineimap" di direktori katakan / tmp ketika Anda ingin tugas offlineimap tertunda dan tidak berjalan sedikit.

Prosesnya akan bekerja seperti ini. Anda menyentuh file di / tmp seperti itu:

touch /tmp/dontrunofflineimap

Pekerjaan cron akan dimodifikasi seperti ini:

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

Meskipun file itu ada, pada dasarnya ia akan memblokir offlineimapaplikasi agar tidak berjalan. Saat Anda ingin melanjutkan, cukup hapus /tmp/dontrunofflineimapfile.

slm
sumber
4

Solusi lain adalah mengedit crontab dan mengomentari pekerjaan untuk menonaktifkannya. Itu sedikit lebih baik karena cronmungkin menjadwalkan pekerjaan lain juga.

Perintah berikut membantu:

crontab -e

Jika crontab root dan bukan pengguna:

sudo crontab -e

Untuk mengomentari pekerjaan, tambahkan #di awal baris. Seperti ini:

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

Anda dapat membaca http://tutscode.com/how-to-use-crontab-in-linux/ untuk mendapatkan informasi lebih lanjut tentang crontab.

hainq
sumber
Selamat datang di Unix & Linux Stack Exchange! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
slm