Como macia matar aplicações gui via terminal?

22

Existe uma maneira de fechar uma aplicação GUI em um modo amigável " saia de perto agora ", sem acesso gráfico à janela de aplicativos?

Por exemplo, se a tela do Gnome / X travar em preto, eu gostaria de mudar para tty2 e fechar aplicativos como o firefox de uma maneira que permita salvar suas configurações, etc. Na melhor das hipóteses, sem consultas adicionais.

    
por jfk 26.08.2011 / 13:07

5 respostas

18

Normalmente, você pode usar SIGHUP para fechar uma aplicação "amigável" (com ou sem interface gráfica).

kill -HUP <application_pid>

EDITED : adicionou outras informações

A forma como o SIGHUP é tratado é dependente da aplicação, por isso, como Dave observou, pode acontecer que este sinal seja mascarado ou manuseado. No entanto, todos os aplicativos interativos saem normalmente com um SIGHUP.

Por outro lado, tenho que admitir que normalmente eu sigo este esquema:

kill -HUP <application_pid>
# check if application is still running
kill -INT <application_pid>
# check if application is still running
kill -KILL <application_pid>

Obviamente, o último comando não é tão "amigável".

    
por 26.08.2011 / 13:14
5

Você pode tentar:

kill -TERM <pid>

ou

kill -TERM 'pidof <application_name>'

Pelo menos em alguns sistemas, quando o sistema está sendo desligado, todos os processos recebem o sinal TERM (15) antes de receberem o sinal KILL (9). O HUP geralmente faz com que o aplicativo recarregue suas configurações, mas pode ser diferente, processo a processo.

    
por 26.08.2011 / 16:49
2

Não há uma maneira geral de dizer a um aplicativo para sair e salvar sua configuração. Pode haver maneiras de notificar aplicativos usando uma estrutura específica, por exemplo dcop kfoo MainApplication-Interface quit para alguns aplicativos do KDE 3. Lembre-se de que o aplicativo pode mostrar uma caixa de diálogo solicitando sua confirmação.

Se o display X ficar inutilizável, mate o servidor X. Pressione Ctrl + Alt + BackSpace ; Se isso não funcionar, mate o processo do servidor X com sudo pkill -x Xorg . Quando o servidor X morre, todos os aplicativos X são notificados e eles tentam sair normalmente (não há garantia de que eles salvarão tudo, mas é a sua melhor aposta).

    
por 27.08.2011 / 00:03
2

Dois outros comandos que você pode considerar são wmctrl -c e xdotool windowkill . Não tenho certeza se windowkill é exatamente o que você procura, se não, você pode estar interessado no windowdelete patch.

    
por 05.08.2012 / 16:51
1

De acordo com a resposta do @ andcoz, se você não souber o PID do aplicativo (suponho que você não saiba de cor), tente o seguinte:

kill -HUP 'pidof [application_name]'
    
por 26.08.2011 / 13:53