Aplicativo suspenso no shell

1

Às vezes, quando um aplicativo trava na sessão bash (por exemplo, atrasos na rede em telnet , ssh , qualquer coisa) não consigo eliminá-lo com ^ C, pare com ^ D e envie-o para o plano de fundo com ^ Z .

Existe uma maneira de eliminá-lo sem abrir outro shell com kill ? Eu acho que há um syscall para interromper

    
por kolypto 27.07.2010 / 14:17

2 respostas

4

Se você estiver usando o SSH, experimente a combinação de dois ketstroke: ~ ^ z (til e, em seguida, control-z). Isso escapará da sessão SSH. O mesmo pode ser feito com o telnet pressionando ^] (ctrl e depois]).

Agora você pode iniciar uma nova sessão e eliminar o processo ofensivo ou a sessão inteira. É isso que você está procurando?

    
por 27.07.2010 / 14:28
2

Você pode enviar ao processo um SIGQUIT com um Ctrl- \ que às vezes funciona se o processo tiver um manipulador de sinal para SIGTERM (Ctrl-c) ou SIGSTOP (Ctrl-z).

Se o seu processo estiver bloqueando o syscalls de E / S (o ps mostra no estado D), ele estará em modo ininterrupto de suspensão e você terá que esperar até que o recurso que está aguardando comece a responder.

    
por 29.07.2010 / 07:14