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 kill
esta 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
pgrep
y 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 . Lapgrep
utilidad muestra el ID del proceso de los procesos que coinciden con el nombre, el usuario y algunos otros criterios. El argumento depgrep
se 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 enpkill
lugar 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. Lapidof
utilidad tiene menos opciones, en su mayoría solo coincide con nombres de archivos ejecutables completos. Su utilidad complementariakillall
envía una señal a los programas coincidentes¹.¹ Tenga cuidado porque
killall
tiene un significado diferente en Solaris y posiblemente en otras variantes de Unix; no escribakillall
como 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 ProccessName
ykill the result form pidof
ps xu | grep <process name> | grep -v grep | awk '{ print $2 }' | xargs kill -9
Pruebe esta línea y reutilícela en el historial de su bash, o mejor cree un alias para ella.fuente
pidof
parece 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
pidof
se puede alimentarkill
directamente con backticks:fuente
pkill
era exactamente lo que estaba buscando, que la mayor parte del tiempo sé el nombre del proceso, su Parcialmenteconky
ofirefox
ochrome
o 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
function
a su.bashrc
,.profile
o 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