/etc/init.d/halt
impede a execução do sistema, portanto, nada será executado depois disso. No entanto, supondo que você não esteja fazendo mais nada de mais no desligamento (como ativar a ativação na LAN), deve ser seguro desligar a energia após a execução de /etc/init.d/umountroot
. Ele desmonta o sistema de arquivos raiz e, em seguida, remonta-o somente a leitura. Desta forma, os scripts subsequentes podem ser lidos e executados a partir do disco sem risco de corrupção.
Se você olhar em /etc/rc0.d
, deverá ver links simbólicos para arquivos em /etc/init.d
. No meu sistema, eu tenho:
...
/etc/rc0.d/S60umountroot -> /etc/init.d/umountroot
/etc/rc0.d/S90halt -> /etc/init.d/halt
Vincule seu script a /etc/rc0.d/S80gpio_poweroff_signal
e seu sinal de gpio será enviado depois que o cartão SD for somente para leitura.
Agradecemos a Nate Powell por sua ajuda para responder isso.