Quiero salir de un proceso usando la línea de comando, pero no puedo recordar el comando para buscar la ID del proceso. ¿Alguien lo sabe?
fuente
Quiero salir de un proceso usando la línea de comando, pero no puedo recordar el comando para buscar la ID del proceso. ¿Alguien lo sabe?
El comando para encontrar la identificación de un proceso (dado su nombre) es pidof
. Sin embargo, dado que su intención es matar el proceso, hay formas mejores / más fáciles que usar pidof
para encontrar su pid primero:
Suponiendo que el proceso que desea eliminar se identifica de forma exclusiva por su nombre (o si desea eliminar todos los procesos con ese nombre), no necesita conocer su pid. Simplemente puedes hacer killall processname
.
Si hay varios procesos con el mismo nombre, pero solo desea eliminar uno de ellos, usarlo pidof
no lo ayudará mucho, porque le dará los pids, pero no le dará ninguna información para determinar cuál de los pids pertenece al proceso que realmente quieres matar.
En este caso, puede hacer ps aux | grep processname
lo que mostrará todos los procesos con el nombre dado, así como la consola en la que se están ejecutando (si corresponde) y los argumentos con los que fueron invocados, lo que con suerte le permite identificar el proceso que está buscando .
Si el proceso abrió alguna ventana X, también puede usar xkill
para matar (invocar xkill
y luego hacer clic en la ventana).
Usted debe echar un vistazo a pgrep
, y pkill
, dos utilidades muy útiles y potentes que se encuentran en la mayoría de los sistemas Linux y UNIX.
$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
Puede ejecutar ps -A
en la terminal para mostrar todos los procesos (con su ID de proceso) que se están ejecutando actualmente.
grep
buscar el nombre del proceso específico:ps -A | grep 'my name'
También tuve un problema similar. Solía
pstree -p
; esto me mostró los procesos actuales en ejecución, incluidas las ID de proceso.fuente
pidof
. Emitirman pidof
para más detalles.fuente
Mi favorito es
pstree -p | grep $(program_name)
. Esto realmente engloba el proceso, lo resalta y muestra el pid entre paréntesis.Mi siguiente favorito (especialmente cuando programo y necesito todos los pids del proceso) es
pgrep -law ""
. Literalmente, le proporciona cada ejecución pid seguida de la aplicación (con ruta absoluta).Esto se puede reducir a
pgrep -lw ""
pid seguido del nombre del programa o incluso solopgrep -l
para todos los pidsPor supuesto, puede buscar el nombre de un programa en particular (o parte del programa). (es decir
pgrep -lw firef
, probablemente mostrará algo como "4567 firefox").fuente
pstree -psH $(pgrep prgram_name)
sería mejor para el primer caso?Esta respuesta, de @Ben en una pregunta duplicada , ha resuelto mi problema:
Considere usar el
top
comando en la terminal.vía man top
fuente