Gnome: como fechar todos os aplicativos?

7

Configurei o sistema Debian no meu netbook para desligar sempre que a bateria estiver muito fraca. O problema é que o desligamento elimina todos os aplicativos em execução, sem dar a eles qualquer chance de salvar qualquer documento no qual eu possa estar trabalhando.

Eu gostaria de escrever um script para fechar "suavemente" todos os aplicativos abertos antes que o desligamento seja ativado, mas não consigo encontrar uma maneira de transmitir uma mensagem "Fechar" para todos os aplicativos em execução no Gnome. Existe um caminho?

Obrigado.

EDIT: Hibernar não funciona no meu netbook, então não posso usá-lo como uma solução alternativa.

    
por Elena 09.07.2012 / 22:05

2 respostas

2

Você pode pedir ao gnome para fechar a sessão atual antes do desligamento. Algo como:

gnome-session-quit --logout --no-prompt
shutdown -h now

A sintaxe do comando pode mudar de acordo com a versão do gnome (por exemplo, gnome-session-quit é o nome novo de gnome-session-save ).

O --no-prompt força os aplicativos em execução a serem encerrados sem a confirmação do usuário.

    
por 10.07.2012 / 12:50
6

O desligamento gentilmente "fechará" (SIGTERM) todos os aplicativos abertos, dando a oportunidade de finalizar normalmente. Então, depois de um tempo, se o processo não responder, um hard kill (SIGKILL) - não dando tempo para fechar arquivos ou, mais importante, bancos de dados.

Um desligamento é um procedimento autônomo. Não é esperado que responda à entrada do usuário. Por isso, não permitiria que o usuário tivesse a opção de salvar antecipadamente. Esta é a razão pela qual tanto o emacs quanto o vi (m) possuem arquivos de recuperação. Verifique com seus aplicativos se houver um recurso de salvamento automático. Na maioria das vezes, o velho ditado "Salve cedo, salve com frequência" vai.

Você pensou em alterar as configurações de energia para ter o sistema hibernar ? Isso salvará o estado do sistema (incluindo programas em execução) para a próxima partida.

    
por 09.07.2012 / 22:20