Estoy familiarizado con el kill
comando, y la mayoría de las veces usamos kill -9 para matar un proceso con fuerza, hay muchas otras señales con las que se puede usar kill
. Pero me pregunto cuáles son los casos de uso de pkill
y killall
, si ya hay un comando kill.
¿ Usar pkill
y killall
usar el kill
comando en su implementación? Quiero decir, ¿son solo envoltorios kill
o tienen su propia implementación?
También me gustaría saber cómo el pgrep
comando obtiene la identificación del proceso del nombre del proceso.
¿Todos estos comandos usan las mismas llamadas de sistema subyacentes? ¿Hay alguna diferencia desde el punto de vista del rendimiento, cuál es más rápido?
linux
bash
shell-script
kill
Ijaz Ahmad Khan
fuente
fuente
kill -9
por defecto? -15 (por favor, deténgase) y -1 (el módem se ha colgado, por favor, LIMPIEZA usted mismo) son mucho más educados. En segundo lugar. Tenga cuidado con el uso de killall en cajas que no sean de Linux. Podría comportarse de manera diferente. (Por ejemplo, en solaris mata a todos. NO FILTRADO en los nombres de proceso).Respuestas:
El
kill
comando es un contenedor muy simple para lakill
llamada al sistema , que solo conoce los ID de proceso (PID).pkill
ykillall
también son envoltorios para lakill
llamada al sistema (en realidad, a la biblioteca libc que invoca directamente la llamada al sistema), pero pueden determinar los PID por usted, en función de cosas como el nombre del proceso, el propietario del proceso, la identificación de la sesión, etc.Cómo
pkill
y elkillall
trabajo se puede ver usandoltrace
ostrace
sobre ellos. En Linux, ambos leen a través del/proc
sistema de archivos y, por cada pid (directorio) encontrado, atraviesan la ruta de manera de identificar un proceso por su nombre u otros atributos. Cómo se hace esto es técnicamente hablando, kernel y sistema específico. En general, leen/proc/<PID>/stat
que contiene el nombre del comando como el segundo campo. Parapkill -f
ypgrep
examinar la/cmdline
entrada para cada entrada de proceso de PID.pkill
ypgrep
usa lareadproc
llamada al sistema, mientraskillall
que no. No podría decir si hay una diferencia de rendimiento: tendrá que compararla por su cuenta.fuente
kill y killall son herramientas que proporcionan una forma de matar un proceso. El primero por su PID, el segundo por su nombre. pgrep (list) y pkill (kill por defecto) son herramientas que proporcionan una forma de enviar mensajes a un proceso por su nombre u otros atributos, consulte: http://linux.die.net/man/1/pkill Para obtener más información sobre señales: http://linux.die.net/man/7/signal
fuente
killall
se usa para matar un proceso por su nombre? y usa pgrep para este propósito? ykillall
también mata todos los procesos secundarios,? ¿Qué señalkillall
utiliza por defecto?killall
matará todos los procesos que tiene derecho a matar, de modo que si es root, reiniciará efectivamente el servidor.killall chromium
matará el proceso de cromo,pgrep chromium
le dará la lista PID,pkill chromium
matará el cromo. killall enviará por defecto la señal SIGTERM (como pkill)