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.