Cuando necesito matar un proceso en segundo plano que hago ps -e | grep <process_name>
Lo que imprime algo como esto 1766 ? 00:00:13 conky, luego uso la ID del proceso de killesta manera kill 1766.
¿Hay alguna manera de simplificar esto? ¿Hacerlo más rápido? reducir la cantidad de mecanografía?

Respuestas:
(TL, DR:
pgrep,pkill)Muchas variantes de Unix vienen con el
pgrepy su compañeropkill: Solaris , Linux (parte de las utilidades de proceso estándar , puede estar ausente de los sistemas Linux integrados), FreeBSD , OpenBSD , NetBSD , ... pero solo de MacPorts en OS X , no AIX , y solo recientemente en HP-UX . Lapgreputilidad muestra el ID del proceso de los procesos que coinciden con el nombre, el usuario y algunos otros criterios. El argumento depgrepse interpreta como una expresión regular que debe coincidir con parte del nombre del ejecutable del proceso (a menos que pase una opción para cambiar esto). Si llamas enpkilllugar depgrep, la utilidad envía una señal en lugar de mostrar las ID de proceso.Otra utilidad similar es pidof . En Linux , es proporcionado por SysVinit o BusyBox (por lo que a menudo lo encontrará en un sistema Linux incorporado que no tiene
pgrep); También hay puertos en otras variantes de Unix. Lapidofutilidad tiene menos opciones, en su mayoría solo coincide con nombres de archivos ejecutables completos. Su utilidad complementariakillallenvía una señal a los programas coincidentes¹.¹ Tenga cuidado porque
killalltiene un significado diferente en Solaris y posiblemente en otras variantes de Unix; no escribakillallcomo root en Solaris.fuente
killall ProcessName(Hay una desventaja con este comando en que no siempre conoce el nombre del proceso de un programa).pidof ProccessNameykill the result form pidofps xu | grep <process name> | grep -v grep | awk '{ print $2 }' | xargs kill -9Pruebe esta línea y reutilícela en el historial de su bash, o mejor cree un alias para ella.fuente
pidofparece un poco más fácil, pero aún así toma 2 pasosSi bien Hanan tiene algunas buenas sugerencias, agregaré
pgrep/pkill. Permiten un control mucho más preciso sobre el proceso que encuentras, y expresiones regulares si no conoces el proceso preciso que deberás matar.PS Hanan
pidofse puede alimentarkilldirectamente con backticks:fuente
pkillera exactamente lo que estaba buscando, que la mayor parte del tiempo sé el nombre del proceso, su Parcialmenteconkyofirefoxochromeo algo por el estilo. GraciasQué tal esto -
Ejemplo:
Actualizar:
Lo sentimos, esto obviamente no cumple con el requisito de escribir menos, por lo que una buena forma de hacerlo sería agregar un
functiona su.bashrc,.profileo lo que sea, el script de inicio. La función puede ser algo como esto:Una vez agregado, simplemente puede pasar el nombre de su proceso:
fuente