detener como linux bash grep nohup

linux - como detener nohup



¿Cómo obtener la ID del proceso para matar un proceso nohup? (8)

Estoy ejecutando un proceso nohup en el servidor. Cuando trato de matarlo, la consola de mi masilla se cierra.

así es como trato de encontrar el ID del proceso:

ps -ef |grep nohup

este es el comando para matar

kill -9 1787 787


Cuando usa nohup y pone la tarea en segundo plano, el operador de fondo ( & ) le dará el PID en el símbolo del sistema. Si su plan es administrar manualmente el proceso, puede guardar ese PID y usarlo más adelante para matar el proceso si es necesario, mediante kill PID o kill -9 PID (si necesita forzar kill). Alternativamente, puede encontrar el PID más tarde por ps -ef | grep "command name" ps -ef | grep "command name" y localiza el PID desde allí. Tenga en cuenta que la palabra clave / comando nohup sí no aparece en la salida ps del comando en cuestión.

Si usaste un script, podrías hacer algo como:

nohup my_command > my.log 2>&1 & echo $! > save_pid.txt

Esto ejecutará my_command guardando todos los resultados en my.log (en un script, $! Representa el PID del último proceso ejecutado). El 2 es el descriptor de archivo para el error estándar ( stderr ) y 2>&1 le dice al shell que dirija la salida de error estándar a la salida estándar (descriptor de archivo 1 ). Requiere &1 para que el shell sepa que es un descriptor de archivo en ese contexto en lugar de solo un archivo llamado 1 . El 2>&1 es necesario para capturar cualquier mensaje de error que normalmente se escribe en el error estándar en nuestro archivo my.log (que proviene de la salida estándar). Consulte Redirección de E / S para obtener más información sobre el manejo de la redirección de E / S con el shell.

Si el comando envía resultados regularmente, puede verificar el resultado ocasionalmente con tail my.log , o si desea seguirlo "en vivo" puede usar tail -f my.log . Finalmente, si necesita matar el proceso, puede hacerlo a través de:

kill -9 `cat save_pid.txt` rm save_pid.txt


Esto funciona en Ubuntu

Escriba esto para descubrir el PID

ps aux | grep java

Se mostrará todo el proceso de ejecución con respecto a Java

En mi caso es

johnjoe 3315 9.1 4.0 1465240 335728 ? Sl 09:42 3:19 java -jar batch.jar

Ahora matalo, kill -9 3315

El proceso zombie finalmente se detuvo.


Estoy usando red hat linux en un servidor VPS (y a través de SSH - masilla), para mí lo siguiente funcionó:

Primero, enumera todos los procesos en ejecución:

ps -ef

Luego, en la primera columna, encontrará su nombre de usuario; Lo encontré las siguientes tres veces:

  • Una era la conexión SSH
  • El segundo era una conexión FTP
  • El último fue el proceso nohup

Luego, en la segunda columna, puede encontrar el PID del proceso nohup y solo debe escribir:

kill PID

(reemplazando el PID por el PID del proceso nohup, por supuesto)

¡Y eso es todo!

Espero que esta respuesta sea útil para alguien que también soy muy nuevo en bash y SSH, pero encontré el 95% del conocimiento que necesito aquí :)


Inicié el servidor django con el siguiente comando.

nohup manage.py runserver <localhost:port>

Esto funciona en CentOS:

:~ ns$netstat -ntlp :~ ns$kill -9 PID


Supongamos que está ejecutando un programa Java con nohup, puede obtener el ID del proceso Java mediante

`ps aux | grep java`

salida

xxxxx 9643 0.0 0.0 14232 968 pts/2

entonces puedes matar el proceso tecleando

sudo kill 9643

o digamos que necesita matar a todos los procesos de Java, entonces solo use

sudo killall java

este comando mata a todos los procesadores java. puedes usar esto con el proceso. solo da el nombre del proceso al final del comando

sudo killall {processName}


Tu podrías intentar

kill -9 `pgrep [command name]`


supongo que estoy ejecutando script de ruby ​​en el fondo con el comando a continuación

nohup ruby script.rb &

entonces puedo obtener el proceso pid de fondo anterior especificando el nombre del comando. En mi caso, el comando es ruby.

ps -ef | grep ruby

salida

ubuntu 25938 25742 0 05:16 pts/0 00:00:00 ruby test.rb

Ahora puedes matar fácilmente el proceso usando el comando kill

kill 25938


jobs -l debería darle el pid para la lista de procesos nohup. matarlos (-9) suavemente. ;)