¿Cómo detener un trabajo cron actualmente en ejecución?


45

¿Cómo puedo detener un trabajo cron que se está ejecutando actualmente?


2
Las tres respuestas a continuación interpretan esta pregunta de tres maneras. @GURU, ¿podría aclarar qué le gustaría hacer? ¿Le gustaría eliminar un proceso iniciado por cron que ahora se está ejecutando, o le gustaría evitar que el trabajo se ejecute en el futuro?
jcrawfordor

Respuestas:


29

Puede hacer esto de la misma manera que detendría cualquier proceso.

Para detener un crontrabajo actualmente en ejecución , puede realizar una de las siguientes acciones:

pkill process-name

o si conoce el PID (puede determinarlo ejecutando ps):

kill 1234

(sustituyendo el PID real)


1
¿Cómo enumerar qué trabajos cron actualmente en ejecución?
UWU_SANDUN

55
@UWU_SANDUN: puede usar pgrepo grepla salida de ps. No hay nada especial en un proceso desde el que se ejecuta cron. Simplemente buscaría el proceso con su propio nombre. También puede hacer ps fauxww | grep -A 1 '[C]RON'y las líneas debajo de la (s) línea (s) mostrarán los trabajos en ejecución cron. Puede ajustar el número 1 más alto para ver los subprocesos, si los hay.
Pausado hasta nuevo aviso.

Tenga en cuenta que debe ejecutar cygwin como administrador para eliminar procesos. Vea aquí para más información sobre eso.
takanuva15

El uso de Ubuntu que he escrito lo que @ takanuva15 sugerido, ps fauxww | grep -A 1 '[C]RON'. Esto enumera los trabajos cron actuales en ejecución, por lo que luego puede anotar el PID y ejecutarlo # kill -9 PID. ¡Gracias!
russellhoff

@russellhoff: -9solo debe usarse como último recurso porque evita que el proceso realice una limpieza a medida que sale.
Pausado hasta nuevo aviso.

17

Para dejar de ejecutar el trabajo cron. Primero obtenga el id de proceso de su comando con

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

p.ej:-

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

y correr

kill PIDreemplazar PIDcon id de proceso


15

Extraño, nadie ha mencionado este método:

$ crontab -e

En el editor abierto, elimine la línea de la tarea que desea detener o inserte un #signo, guarde y salga

p.ej

antes de

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

después

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

o

* * * * * some_script1

reiniciar el servicio después de hacer cambios por

sudo service cron reload

17
Esto no detiene un trabajo cron que se está ejecutando actualmente, detiene futuros trabajos cron que iniciará cron.
Ivan

10

Si está utilizando Redhat (RHEL) / Fedora Core / Cent OS Linux, use el siguiente comando:

/etc/init.d/crond stop

Si está utilizando Debian o Ubuntu Linux, el siguiente comando:

/etc/init.d/cron stop

PD: deberías ser root para hacer estas cosas


2
creo que se detenga todas crons .para dejar de cron particular, se puede saber el comando

¿Puedes sugerirme algún comando sen?

No creo que sea posible de manera directa ... Tal vez deberíamos ir a hackear.
Sen


3

Puede editar la tabla cron y comentar la tarea en cuestión. Cambie al usuario que controla la tarea, exporte su editor de elección al entorno y luego use crontab -l:

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

1
Eso enumera el crontab. Use crontab -epara editarlo. Para los sistemas que lo tienen, es preferible usarlo en sudolugar de su. Además, crontab -efuncionaría para el crontab del usuario (o root), pero no para el crontab del sistema (por ejemplo /etc/cron*).
Pausado hasta nuevo aviso.

1

crontab -r

eliminaría todos los crontabs que se están ejecutando, o simplemente puede comentar los comandos en el crontab que deben detenerse.


0

En primer lugar, compruebe el proceso de trabajo con este comando.

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

La salida de este comando es

599  599 cron
4288  599 \_ CRON

y ahora mata el proceso con este comando

pkill -s 4288

0

Trabajando para mi para linux

pkill -9 crontab

Elimina todos los procesos que tienen el nombre de proceso crontab

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.