Jak zatrzymać aktualnie uruchomione zadanie CRON?


45

Jak mogę zatrzymać aktualnie uruchomione zadanie CRON?


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)


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


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

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


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

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ć.


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

0

Pracuje dla mnie dla systemu Linux

pkill -9 crontab

Zabija cały proces o nazwie crontab procesu

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.