Làm thế nào để bắt đầu một công việc định kỳ mà không cần khởi động lại?


11

Tôi sử dụng một công việc định kỳ để gọi offlineimapcứ sau 2 phút:

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

Tôi cần phải giết công việc định kỳ để khắc phục một vấn đề. Làm thế nào tôi có thể khởi động lại công việc định kỳ (mà không cần khởi động lại)? Tôi tìm thấy "giải pháp" trực tuyến này:

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

Tuy nhiên, bằng cách sử dụng ps -ef | grep ..., tôi không thấy công việc ... Có gì sai?


Bạn không thể nhìn thấy công việc nào?
Spack

1
Mở của bạn crontab, nhận xét công việc đó, thực hiện bảo trì của bạn và sau đó bỏ qua nó ...
jasonwryan

Câu trả lời:


12

Phương pháp tiếp cận cron

Nếu bạn có đặc quyền sudo, bạn có thể dừng / bắt đầu dịch vụ định kỳ. Tôi tin rằng đó là những gì giải pháp mà bạn tìm thấy trực tuyến đang giải thích.

Tùy thuộc vào phân phối Linux nào bạn đang sử dụng, bạn có thể thực hiện các lệnh sau:

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

Hoặc thực hiện các lệnh sau:

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

Khóa cách tiếp cận tập tin

Bạn cũng có thể đặt tệp "dontrunofflineimap" trong thư mục / tmp khi bạn muốn tác vụ offlineimap bị tắt và không chạy một chút.

Quá trình sẽ làm việc như thế này. Bạn chạm vào một tập tin trong / tmp như vậy:

touch /tmp/dontrunofflineimap

Công việc định kỳ sẽ được sửa đổi như vậy:

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

Trong khi tập tin đó tồn tại, về cơ bản nó sẽ chặn offlineimapứng dụng chạy. Khi bạn muốn nó tiếp tục, chỉ cần xóa các /tmp/dontrunofflineimaptập tin.


4

Một giải pháp khác là chỉnh sửa crontab và nhận xét công việc để vô hiệu hóa nó. Điều đó cũng tốt hơn một chút vì croncó thể sắp xếp các công việc khác.

Lệnh sau giúp:

crontab -e

Nếu đó là crontab gốc chứ không phải người dùng:

sudo crontab -e

Để nhận xét công việc, thêm một #ở đầu dòng. Như thế này:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.