我使用基于 Poky 的 Yocto 创建了一个定制的嵌入式 Linux 发行版。我正在使用 SysVInit 实用程序。当我们重新启动系统并调用所有 rc6 脚本时。几乎在最后 /etc/init.d/sendsigs 脚本被调用。该脚本首先向所有正在运行的进程发送 SIGTERM 信号并休眠 5 秒,然后向所有剩余进程发送 SIGKILL 信号。我看到的问题是当我重新启动系统时,脚本发送 SIGTERM 信号并睡眠 5 秒,但在睡眠后没有唤醒,因此它不发送 SIGTERM 并挂起系统导致系统不重新启动。以下是 /etc/init.d/sendsigs 脚本
echo "Sending TERM signal..."
killall5 -15
sleep 5 # Does not wakeup after sleep.
echo "Sending KILL signal..."
killall5 -9
看起来内核调度程序没有唤醒脚本进程。但是我应该在哪里寻找解决问题或问题可能出在哪里的任何想法。
谢谢。