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 pidofpara 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 pidofno 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 processnamelo 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 xkillpara matar (invocar xkilly 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 -Aen la terminal para mostrar todos los procesos (con su ID de proceso) que se están ejecutando actualmente.
grepbuscar 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 pidofpara 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 -lpara 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
topcomando en la terminal.vía man top
fuente