¿Hay alguna manera (tal vez un script) de cómo automatizar este proceso:
petr@sova:~$ ps -ef | grep middleman
petr 18445 2312 1 12:06 pts/2 00:00:01 /home/petr/.rvm/gems/ruby-1.9.3-p362/bin/middleman
petr 18581 13621 0 12:08 pts/0 00:00:00 grep --color=auto middleman
petr@sova:~$ kill -9 18445
Desafortunadamente, pkill
es demasiado débil ya que tengo que ir con la -9
opción activada kill
.
-9
conpkill
demasiado ...-KILL
que-9
. Qué número corresponde a qué señal depende de la implementación.SIGKILL
resulta estar9
en Linux i386 y Linux amd64, pero no necesariamente en todas partes. ( Más información aquí. )-KILL
(porque hace que el código sea más legible), cabe señalar queSIGKILL = 9
está especificado por POSIX , por lo que-9
es bastante portátil hoy en día (y no depende de núcleos o arquitecturas).Respuestas:
Puede usar su shell para hacer esta tarea por usted:
El shell ejecuta el comando
pidof middleman
primero. La salida de pidof (8) es la identificación del proceso. Por lo tanto, el shell sustituye elpidof
comando -con la identificación del proceso y se ejecutakill -9 18845
(o lo que sea la identificación correcta del proceso).fuente
kill -9 $(pgrep middleman)
?Existe una solución aún más simple que la de qbi: eliminemos
killall
los procesos por nombre y puede especificar señales.Consulte
man killall
para obtener más información y opciones adicionales (hay bastantes).Como su nombre lo indica, esto envía la señal a todos los procesos nombrados
middleman
. Pero eso no es diferente de otras formas (comopkill
). Por otra parte,pkill -9 middleman
se centrará en los procesos cuyo nombre partido, pero no son igualesmiddleman
, como por ejemplomiddleman2
, también.fuente
killall
¡por la victoria!Las otras respuestas son completamente correctas, pero también podría agregar una tercera opción para que todas estén documentadas aquí. También puedes usar:
Consulte
man pkill
para obtener más información y opciones adicionales.Realmente no importa cuál de estos métodos uses. Todos trabajarán. Pero conocer las opciones es útil si desea modificar el comportamiento de alguna manera, ya que las páginas man correspondientes muestran qué otras opciones coincidentes están disponibles.
fuente
middleman*
middleman
. Aquí es donde las diferencias en cómo exactamentepkill
,killall
,pidof
ygrep
los procesos de los partidos comienzan realmente a la materia!La
-f
opción hace que coincida con la línea de comando completa, en lugar de solo el nombre del proceso.Tenga en cuenta que
-9
debería ser una señal de último recurso, no algo para usar de forma rutinaria.fuente
complete command line
Solo por diversión, me gustaría agregar una forma más manual, de la vieja escuela
fuente
... grep [m]iddleman ...
para evitar matar elgrep
proceso por accidente. De esa manera, el grep no puede igualarse debido a citas divertidas.que es interactivo (seguro) y coincide con el nombre del comando parcial.
fuente