Como posso matar um trabalho iniciado em outro shell (janela ou guia do terminal)?

9

Se eu iniciar um processo e colocá-lo em segundo plano em uma janela de terminal (por exemplo ping google.com &), posso matá-lo usando kill %1(assumindo que seja o trabalho 1).

No entanto, se eu abrir outra janela (ou guia) do terminal, o processo em segundo plano não será listado abaixo jobse não poderá ser eliminado diretamente usando kill.

É possível eliminar esse processo de outra janela ou guia do terminal?

Nota: Estou usando o Xfce Terminal Emulator 0.4.3 e o bash (embora, se houver uma solução em outro shell comum, mas não no bash, eu esteja aberto a isso também)

DQdlM
fonte

Respostas:

10

Sim, tudo que você precisa saber é o ID do processo (PID) do processo. Você pode encontrar isso com o pscomando ou com o pidofcomando

kill $(pidof ping)

Deve funcionar de qualquer outro shell. Caso contrário, você pode usar ps e grep para executar ping.

Keith
fonte
6

Se você digitar topna outra janela do terminal, ele listará todo o processo em execução. Observe a identificação do processo jobe pressione qpara sair da tela. Depois, killo processo como de costume.

arthankamal
fonte
obrigado pela sua resposta, mas topnão parece mostrar todos os processos específicos em execução no shell (por exemplo, não aparece ping). Isso me fornece um PID para o emulador de terminal, mas isso mata o emulador de terminal como seria de esperar.
DQdlM
1
se você digitar o top -U yourusernameterminal, ele listará apenas o processo que você está usando.
arthankamal
impressionante! +1 apenas por isso! graças
DQdlM
enquanto estiver no topo, pressione k e 15 para uma morte suave (tente primeiro), 9 para uma morte fatal.
Michael Durrant
4

Eu costumo fazer algo assim:

ps aux | grep $PROCESS | grep -v grep | awk '{print $2 " " $11}'

Por exemplo, se $ PROCESS = "bash", esta é a saída da minha sessão atual:

2683 bash
4481 bash
5695 bash

Então, eu iria kill $PIDpara o que /bin/basheu não quero mais estar executando.

ps, grepe (opcionalmente) awksão úteis para procurar PIDs kill.

Charles Boyd
fonte