什么是正确的方式来closuresLinux,然后杀死权力?

我使用外部电源在raspberrypi板上运行Linux raspberrypi 3.6.11+。 电源“断开”开关通过GPIO进行控制。

我想做一个“shutdown -h -P now”,等待系统closures(暂停),然后通过运行一个程序(killpower)来切断相应的gpio引脚来closures电源。 我的主要目标是确保文件系统处于断电时不会损坏的状态。

我试图利用运行级别1脚本killproc向每个正在运行的进程发送SIGTERM(和SIGKILL)。 我写了killpower来捕捉SIGTERM,等待20秒,然后发送gpio powerkill序列。 我还修改了killproc脚本,使其不会SIGKILL我的killpower pid,即使它在SIGTERM超时之后仍在运行。

当这不起作用时,我发现在killproc运行后,运行了/init.d/halt SCRIPT,它调用了/ sbin / halt。 / sbin / halt也杀死了SIGKILL的所有进程,所以我希望我的killpower proc在20秒之前被杀死。 现在,我不明白这种方法是如何工作的。

我也看到,init可以作用于一个SIGPWR信号(不推荐),但它可以执行powerwait / powerfail。 此时系统是否处于closures状态? 我似乎无法找出这些程序应该实施什么。

我想在init.d中安装另一个closures脚本,但是我很困惑应该在哪个运行级别停止(级别1或级别0)。

由于closures命令而在执行/ sbin / halt之前就可以closures电源吗? 我纠正一次/ sbin / halt执行,没有别的将永远运行?

当我登录到远程登录时,我关闭一个linux的方式就是使用'poweroff'命令。 系统然后正常关闭,最后自动关闭 – 只不过是,正是我想要的。