PreguntasLinux

Versión Completa: Identificacion de proceso python por nombre (solucionado)
Actualmente estas viendo una versión simplificada de nuestro contenido. Para ver la versión completa en el formato correcto, dale click aquí
Mi consulta es la siguiente, tengo los siguientes 3 procesos corriendo en mi servidor:

[juan@localhost ~]$ ps U juan
PID TTY STAT TIME COMMAND
10600 ? Sl 1:53 ./MyServer
10620 pts/0 S 0:00 python ../Accion/DemonioAccion1.py
10621 pts/0 S 0:00 python ../Accion/DemonioAccion2.py

Para trabajar sobre el primer proceso, se pueden usar los comandos de la siguiente formas.
Para obtener el pid:
/sbin/pidof -x MyServer
Para matar proceso:
killall MyServer

Ahora no he podido encontrar laa forma de trabajar con el nombre de SOLO el segundo proceso, he
probado las siguientes opciones:
/sbin/pidof -x python ../Accion/DemonioAccion1.py => devuelve todos los pid de python
/sbin/pidof -x "python ../Accion/DemonioAccion1.py" => devuelve vacio
/sbin/pidof -x 'python ../Accion/DemonioAccion1.py' => devuelve vacio
/sbin/pidof -x python\ ../Accion/DemonioAccion1.py => devuelve vacio

¿alguien sabe como poder indicar por el nombre a SOLO el segundo proceso para poder realizar operaciones sobre él?
Hola, no entiendo del todo tu problema

¿si corres lo siguiente funciona?
/sbin/pidof -x DemonioAccion1.py

o tal vez debas redireccionar las salidas:
/sbin/pidof -x $(ps U juan | grep DemonioAccion1.py)

dragonauta Escribió:
Hola, no entiendo del todo tu problema

¿si corres lo siguiente funciona?
/sbin/pidof -x DemonioAccion1.py

o tal vez debas redireccionar las salidas:
/sbin/pidof -x $(ps U juan | grep DemonioAccion1.py)


No funciona ninguna de las 2 opciones,
el problema es debido a que el proceso se llama "python ../Accion/DemonioAccion1.py" (esto se ve al hacer un ps) y no se como indicarle ese nombre de forma correcta al usar los comandos /sbin/pidof o killall

y a ver esto? es bastante rebuscado y seguro hay otras formas mas sencillas, pero probar no cuesta nada:
echo $(ps ax | grep DemonioAccion1) | cut --fields=1 -d" "
debería devolverte el pid.

dragonauta Escribió:
y a ver esto? es bastante rebuscado y seguro hay otras formas mas sencillas, pero probar no cuesta nada:
echo $(ps ax | grep DemonioAccion1) | cut --fields=1 -d" "
debería devolverte el pid.


tienes razon, eso me devuelve el pid correctamente

Excelente, eso te sirve para administrar tus procesos?
ahora ya puedes utilizar el comando kill para matarlo

muy sencillo para hacerlo en una sola línea:
kill $(echo $(ps ax | grep DemonioAccion1) | cut --fields=1 -d" ")
URLs de Referencia