Matar un trabajo en Ubuntu

22

Esta es probablemente una pregunta frecuente, pero no he podido encontrar buena documentación.

Tengo trabajos ejecutándose en mi sistema:

foo@fooBox:~/tmp$ jobs
[1]+  Stopped                 foo bar baz

¿Cómo puedo matar este proceso? He probado varios comandos, como kill 1, pero no ha funcionado.

Nick Heiner
fuente
alternativamente, $ fg [enter] [ctrl-c]: p
bubu
@bubu: Eso no funcionará para algunos programas que atrapan SIGINT, como vim.
Wuffers
@ Mark Szymanski Lo sabía, lo sabía: p
bubu

Respuestas:

32

Puede usar el método sugerido por @fideli, o puede usar el killcomando de la siguiente manera:

kill %1

Esto matará al primer comando suspendido. También puede encontrar una lista de comandos suspendidos de esta manera:

jobs

y proporcionará resultados como tales:

[1]+  Stopped                 yes

Si tiene varios trabajos detenidos, el número entre paréntesis ( [1]) será el número de trabajo, el que proporcione después %del killcomando.

Wuffers
fuente
¡Esto es genial! Aprendí algo nuevo sobre kill.
fideli
1
¿Cómo es que consigo esto -bash: kill: (3593) - Operation not permitted? Cuando lo uso con sudo, obtengo estokill: %1: invalid process id
CMCDragonkai
1
@CMCDragonkai has llegado a una situación en la que el comando de ejecución He es ahora propiedad de un usuario diferente, ya que utiliza sudo, por lo que no se puede matar, pero corriendo killel uso de sudomedios que ya no tiene acceso a la lista de trabajo de su usuario (try corriendo sudo jobspara ver a qué me refiero). En cambio, dado que ahora tiene el PID, simplemente ejecute sudo kill 3593.
Morloch
¿Cómo puede un proceso en segundo plano ser propiedad de otro usuario?
CMCDragonkai
6

Si ejecuta ps ax, obtendrá una lista de todos los procesos en ejecución. Busque el que desea matar y anote el número en la PIDcolumna. Por ejemplo, digamos que el número era 10203, entonces ejecutarías:

kill 10203

También puede ejecutar ps ax | grep foopara encontrar el programa exacto que está buscando. Finalmente, puedes ejecutar:

killall foo

para matar todas las instancias de foo.

fideli
fuente