Matando um emprego no Ubuntu

22

Provavelmente, essa é uma pergunta freqüente, mas não consegui encontrar boa documentação.

Tenho trabalhos em execução no meu sistema:

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

Como posso matar esse processo? Eu tentei vários comandos, como kill 1, mas não funcionou.

Nick Heiner
fonte
alternativamente, $ fg [enter] [ctrl-c]: p
bubu
@ubu: Isso não funcionará para alguns programas que capturam SIGINT, como o vim.
Wuffers
@ Mark Szymanski eu sabia, sabia: p
bubu

Respostas:

32

Você pode usar o método sugerido por @fideli ou o killcomando da seguinte maneira:

kill %1

Isso matará o primeiro comando suspenso. Você também pode encontrar uma lista de comandos suspensos da seguinte maneira:

jobs

e fornecerá saída como:

[1]+  Stopped                 yes

Se você tiver vários trabalhos interrompidos, o número entre parênteses ( [1]) será o número do trabalho, aquele que você fornecer após %o killcomando.

Wuffers
fonte
Isso é ótimo! Aprendeu algo novo sobre kill.
Fideli
11
Como é que eu entendo isso -bash: kill: (3593) - Operation not permitted. Quando eu o uso com o sudo, recebo issokill: %1: invalid process id
CMCDragonkai
11
@CMCDragonkai Você atingiu uma situação em que o comando que você executou agora pertence a um usuário diferente porque você o usou sudo, portanto você não pode matá-lo, mas executar killusando sudosignifica que você não tem mais acesso à lista de tarefas do usuário (tente correndo sudo jobspara ver o que eu quero dizer). Em vez disso, como agora você possui o PID, basta executar sudo kill 3593.
Morloch
Como um processo em segundo plano pode pertencer a outro usuário?
CMCDragonkai
6

Se você executar ps ax, obterá uma lista de todos os processos em execução. Procure o que você deseja matar e anote o número na PIDcoluna. Por exemplo, digamos que o número era 10203, você executaria:

kill 10203

Você também pode executar ps ax | grep foopara encontrar o programa exato que está procurando. Por fim, você pode executar:

killall foo

matar todas as instâncias de foo.

fideli
fonte