comprobar el proceso en ejecución

comprobar el proceso en ejecución

Se me pide que verifique y cierre los procesos con los que no estoy familiarizado. Entonces, cuando estoy lsen la carpeta bin, veo múltiples procesos .sh. Pero quiero saber qué proceso está asociado con qué proceso de Tomcat.

¿Hay alguna manera fácil de averiguarlo?

Ejemplo startmyprocess1.sh, pero cuando lo hago ps -ef | grep startmyprocess1no devuelve el proceso en ejecución.

Pero en realidad el nombre del proceso Tomcat en ejecución es myprocess, así que cuando lo hago ps -ef | grep myprocess, puedo ver el proceso en ejecución. Para saber eso tengo que preguntarle al responsable.

Entonces, los nombres son diferentes. Si es así, necesito preguntarle varias veces. ¿Alguna mejor manera de resolver esto?

Respuesta1

prueba este... (no probado)

ps -aux | grep "yourprocess"

Por ejemplo,

ps -aux | grep "httpd"

Respuesta2

Iniciar myprocess desde startmyprocess.sh nononombre el proceso después del script de shell subyacente, es por eso que ps -ef | grep startmyprocess1no devuelve un resultado.

Esta es también la razón por la que muchos procesos, especialmente demonios, escriben su pid en un archivo para que pueda consultar fácilmente su proceso. Esto se puede hacer con:

#!/bin/sh
pid=`myprocess`
echo $pid > /tmp/myprocess.pid

o puedes consultar $!cuál contiene el último pid:

#!/bin/sh
myprocess
echo $! > /tmp/myprocess.pid

y consultar/enumerar el proceso por su pid:

ps --pid $PID

Respuesta3

Creo que un software como "top" hará un gran trabajo.

Tipo:

top

o

htop

Respuesta4

La respuesta de @invert ha explicado mucho, el script de shell simplemente ejecuta comandos dentro de él. Lo que eso significa es que no obtendrá el nombre de su script de shell en la salida de topo htop, que simplemente imprime el /proc/$PID/cmdline de cada rutina dentro del script de shell.

Además de usar echo $!el comando after para obtener el PID de lo que deseas. Me gustaría usar pgrepel comando cuando lo necesite (o pkill si desea eliminarlo).

pgrep, pkill: busca o señala procesos según el nombre y otros atributos

El pgrep simplemente recoge sus argumentos a través de /proc/*/cmdline y genera los PID coincidentes. El pkill es compatible con kill, por lo que puede pkill fácilmente cualquier rutina con el cmdline.

información relacionada