Manipulação de desligamento de uma placa embutida
-
05-07-2019 - |
Pergunta
Eu estou trabalhando com uma placa embutida (a BeagleBoard), rodando uma distribuição Linux (Angstrom Linux). Gostaria de parar suavemente o sistema operacional quando um determinado botão é pressionado no tabuleiro. O que eu pretendo fazer é:
- Na inicialização, lançar um "power-off" daemon como usuário root
- "power-off" executar o código mágica para verificar se um determinado botão é pressionado
- Se o botão for pressionado, "poder-off" chamada de "parada"
Antes de saltar no meu editor de texto e código que, há algum daemon padrão do Linux para fazer isso?
Solução
O daemon init
(ID de processo 1) está configurado para mapear o sinal SIGWINCH
ao kb
( "pedido de teclado") ação, que é gratuito para que você defina. init
é o que mapeia um ctrl-alt-del pressione a tecla para uma reinicialização; por isso faria sentido ter alça init
botão seu desligamento também.
Para implementar isso, você só precisa escrever um pouco de código do kernel para mapear o "shut down" botão para enviar um SIGWINCH
a PID 1, em seguida, configurar a ação kb
para shutdown -h
chamada em /etc/inittab
.
Outras dicas
Eu não sei os detalhes de sua placa .. mas dê uma olhada no 'hal' daemon.