Jak zatrzymać aktualnie uruchomione zadanie CRON?

45

Jak mogę zatrzymać aktualnie uruchomione zadanie CRON?

nhinkle
źródło
2
Trzy poniższe odpowiedzi interpretują to pytanie na trzy sposoby. @GURU, czy możesz wyjaśnić, co chcesz zrobić? Czy chcesz zabić proces rozpoczęty przez cron, który jest teraz uruchomiony, czy chciałbyś uniemożliwić uruchomienie zadania w przyszłości?
jcrawfordor

Odpowiedzi:

29

Możesz to zrobić w taki sam sposób, jak zatrzymać każdy proces.

Aby zatrzymać aktualnie uruchomione cronzadanie, możesz wykonać jedną z następujących czynności:

pkill process-name

lub jeśli znasz PID (możesz go ustalić, uruchamiając ps):

kill 1234

(zastępując rzeczywisty PID)

Dennis Williamson
źródło
1
jak wyświetlić listę aktualnie uruchomionych zadań cron?
UWU_SANDUN
5
@UWU_SANDUN: Możesz użyć pgreplub grepdanych wyjściowych ps. Nie ma nic specjalnego w uruchamianiu procesu cron. Po prostu wyszukaj proces pod własną nazwą. Możesz także zrobić, ps fauxww | grep -A 1 '[C]RON'a wiersze poniżej wierszy pokażą zadania wykonywane przez cron. Możesz ustawić cyfrę 1 wyżej, aby zobaczyć ewentualne podprocesy.
Dennis Williamson,
Uwaga: aby zabijać procesy, musisz uruchomić cygwin jako administrator. Zobacz tutaj, aby uzyskać więcej informacji na ten temat.
takanuva15
Korzystanie Ubuntu Wpisałem co @ takanuva15 zaproponował ps fauxww | grep -A 1 '[C]RON'. Lista bieżących uruchomionych zadań cron, dzięki czemu można zanotować PID w dół i wykonać # kill -9 PID. Dzięki!
russellhoff,
@russellhoff: -9powinien być używany tylko w ostateczności, ponieważ uniemożliwia procesowi czyszczenia po wyjściu.
Dennis Williamson,
17

Aby zatrzymać uruchamianie zadania cron. Najpierw pobierz identyfikator procesu swojego polecenia za pomocą

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

na przykład:-

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

i biegnij

kill PIDzamień na PIDid procesu

Miqdad Ali
źródło
14

Dziwne, nikt nie wspomniał o tej metodzie:

$ crontab -e

W otwartym edytorze usuń wiersz zadania, które chcesz zatrzymać lub wstaw #znak, zapisz i wyjdź

na przykład

przed

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

po

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

lub

* * * * * some_script1

uruchom ponownie usługę po wprowadzeniu zmian przez

sudo service cron reload
laike9m
źródło
16
To nie zatrzymuje aktualnie uruchomionego zadania crona, zatrzymuje przyszłe zadania crona, które zostaną uruchomione przez crona.
Ivan
10

Jeśli używasz systemu Redhat (RHEL) / Fedora Core / Cent OS Linux, użyj następującego polecenia:

/etc/init.d/crond stop

Jeśli używasz systemu Debian lub Ubuntu Linux, następujące polecenie:

/etc/init.d/cron stop

PS: Powinieneś być rootem, aby robić te rzeczy

Sen
źródło
2
myślę, że to zatrzymuje wszystkie crony. aby zatrzymać konkretnego crona, czy mogę znać polecenie
czy możesz zasugerować dowolne polecenie sen
Nie sądzę, że jest to możliwe w prosty sposób. Może powinniśmy pójść na hack.
Sen
3

Możesz edytować tabelę cron i komentować dane zadanie. Przejdź do użytkownika, który kontroluje zadanie, wyeksportuj wybrany edytor do środowiska, a następnie użyj crontab -l:

$ su - root
...
# EDITOR=vi; export EDITOR
# crontab -l
mfe
źródło
1
To zawiera listę crontab. Użyj crontab -edo edycji. W systemach, które go mają, lepiej jest używać sudozamiast su. Działa również crontab -edla crontab użytkownika (lub root), ale nie crontab systemowy (np /etc/cron*.).
Dennis Williamson,
1

crontab -r

usunie wszystkie uruchomione tabele crontab, lub możesz po prostu skomentować polecenia crontab, które należy zatrzymać.

Półksiężyc
źródło
0

Przede wszystkim sprawdź proces pracy za pomocą tego polecenia.

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

Dane wyjściowe tego polecenia to

599  599 cron
4288  599 \_ CRON

a teraz zabij ten proces za pomocą tego polecenia

pkill -s 4288
aemre
źródło
0

Pracuje dla mnie dla systemu Linux

pkill -9 crontab

Zabija cały proces o nazwie crontab procesu

Sayka
źródło