Halen çalışan bir cron işini nasıl durdurabilirim?


45

Çalışmakta olan bir cron işini nasıl durdurabilirim?


2
Aşağıdaki üç cevap, bu soruyu üç şekilde yorumlamaktadır. @GURU, ne yapmak istediğinizi açıklığa kavuşturabilir misiniz? Şu anda çalışan cron tarafından başlatılan bir işlemi mi öldürmek istiyorsunuz yoksa gelecekte işin yürümesini önlemek mi istiyorsunuz?
jcrawfordor

Yanıtlar:


29

Bunu, herhangi bir işlemi durdurduğunuz gibi yapabilirsiniz.

Çalışmakta olan bir cronişi durdurmak için aşağıdakilerden birini yapabilirsiniz:

pkill process-name

PıD'YI biliyorsanız veya (eğer çalıştırarak bunu belirleyebilir ps):

kill 1234

(gerçek PID yerine)


1
şu anda çalışan cron işleri listelenir?
UWU_SANDUN

5
@UWU_SANDUN: Kullanabilir pgrepveya grepçıktısını kullanabilirsiniz ps. Bir süreçten kaçan özel bir şey yok cron. Süreci sadece kendi adı altında arayacaksınız. Ayrıca yapabilirsiniz ps fauxww | grep -A 1 '[C]RON've satırın altındaki satırlar, çalıştırılmakta olan işleri gösterir cron. Varsa alt işlemleri görmek için 1 sayısını daha yükseğe ayarlayabilirsiniz.
Dennis Williamson,

İşlemleri öldürmek için cygwin'i yönetici olarak çalıştırmanız gerektiğini unutmayın. Bununla ilgili daha fazla bilgi için buraya bakınız .
takanuva15

Ubuntu kullanarak @ takanuva15'in önerdiği şeyi yazdım ps fauxww | grep -A 1 '[C]RON'. Bu, çalışmakta olan cron işlerini listeler, böylece daha sonra PID'yi not edip çalıştırabilirsiniz # kill -9 PID. Teşekkürler!
russellhoff

@russellhoff: -9o çıkar gibi herhangi temizliyorum dan önlediği için yalnızca son çare olarak kullanılmalıdır.
Dennis Williamson

17

Cron job'u çalıştırmayı durdurmak için .İlk olarak komutunuzun işlem kimliğini alın

top -p $(pgrep -d',' your_command)

Örneğin:-

top -p $(pgrep -d',' httpd)

ve koş

kill PIDPIDişlem kimliği ile değiştirin


14

Garip, kimse bu yöntemden bahsetmedi:

$ crontab -e

Açılan düzenleyicide, durdurmak veya #işaret eklemek istediğiniz görevin satırını silin , kaydedin ve çıkın

Örneğin

önce

* * * * * some_script1
* * * * * some_script2

sonra

* * * * * some_script1
#* * * * * some_script2

veya

* * * * * some_script1

tarafından değişiklik yaptıktan sonra hizmeti yeniden başlatın.

sudo service cron reload

16
Bu, şu anda çalışan bir cron işini durdurmaz, cron tarafından başlatılacak gelecekteki cron işlerini durdurur.
Ivan

10

Redhat (RHEL) / Fedora Core / Cent OS Linux kullanıyorsanız, aşağıdaki komutu kullanın:

/etc/init.d/crond stop

Debian veya Ubuntu Linux kullanıyorsanız aşağıdaki komutu kullanın:

/etc/init.d/cron stop

Not: Bunları yapmak için kök olmalısın


2
tüm cilveleri durdurduğunu düşünüyorum. belirli bir cronu durdurmak için komutu bilebilirim

pls herhangi bir komut sen önerebilir misin

Düz bir şekilde mümkün olduğunu sanmıyorum .. Belki bir kesmek için gitmeliyiz.
Sen


3

Cron tablosunu düzenleyebilir ve söz konusu görevi yorumlayabilirsiniz. Görevi kontrol eden kullanıcıya geçin, tercih editörünüzü ortama aktarın ve sonra crontab -lşunları kullanın :

$ su - root
...
# EDITOR=vi; export EDITOR
# crontab -l

1
Bu crontab'ı listeler. crontab -eDüzenlemek için kullanın . Sahip olan sistemler için sudoyerine kullanılması tercih edilir su. Ayrıca, crontab -ekullanıcı (veya kök) crontab için de çalışır, ancak sistem crontab (ör. /etc/cron*) İçin çalışmaz .
Dennis Williamson,

1

crontab -r

çalışmakta olan tüm crontab'ları kaldırır, ya da crontab'daki durması gereken komutları yorumlayabilirsiniz.


0

Her şeyden önce çalışma işlemini bu komutla kontrol edin.

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

Bu komutun çıktısı:

599  599 cron
4288  599 \_ CRON

ve şimdi bu komutla işlemi sonlandırın

pkill -s 4288

0

Linux için benim için çalışıyor

pkill -9 crontab

İşlem adı crontab olan tüm işlemleri öldürür

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.