Os programas Linux podem receber um comando SIGXXX para o qual eles podem responder na interface do usuário?

1

Estou experimentando o comando tempo limite e gostaria de saber se existe um sinal de kill que um programa GUI, seja um desktop gráfico ou um programa terminal tratará como o usuário finalizando o programa a partir da interface do usuário, como um comando File| Exit ou clicando no botão X na janela, solicitando salve todos os arquivos abertos.

kill -l exibe mais de 64 opções. Algum deles está sozinho em combinação equivalente a uma opção GUI para terminar?

Eu tentei com nano como exemplo, mas as opções que tentei até agora não funcionam, exceto SIGTERM.

    
por vfclists 02.08.2014 / 16:39

1 resposta

1

Não. Os principais sinais que são convencionalmente usados por um usuário para matar um processo são:

  • SIGINT (enviado por Ctrl + C em um terminal) - aborta a operação atual e vai para o loop interativo de nível superior. Se o programa não tiver um loop interativo de nível superior, mate o programa.
  • SIGTERM - interrompa o programa corretamente. Isso pode fazer uma economia de emergência.
  • SIGHUP - enviado pelo sistema para um programa em execução em um terminal quando o terminal vai embora. Geralmente tratado como SIGTERM.
  • SIGQUIT (enviado por Ctrl + \ em um terminal) - morre sem qualquer limpeza e descarta o núcleo (para depuração).
  • SIGKILL - o programa morre e não tem a chance de fazer qualquer limpeza.

Nenhum deles tem um significado convencional pelo qual o programa solicita ao usuário qualquer coisa. Pode fazer sentido para um programa solicitar o SIGTERM, mas não consigo pensar em um programa que o faça. Alguns programas solicitam o SIGINT, oferecendo a opção de retornar ao nível superior ou sair do programa ou entrar em um modo de depuração. De um modo geral, a suposição quando um programa recebe SIGTERM é que o usuário não está na frente do console para interagir com o programa, ou que o programa não está respondendo - caso contrário, o usuário estaria usando os controles interativos ao invés de enviar um sinal.

Eventos da GUI, como clicar no botão x na barra de título da janela, não enviam um sinal, eles enviam um evento no canal de comunicação normal do X11.

    
por 04.08.2014 / 02:46