![为什么我的服务器无法正常关闭?](https://linux22.com/image/32572/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%85%B3%E9%97%AD%EF%BC%9F.png)
当我$ reboot
在嵌入式 FreeNAS 0.7 (FreeBSD 7.2) 上运行时,它确实启动了关闭过程,但似乎挂起。
我已经注册了一个命令来启动在 PostInit 上执行的服务脚本:
/myscripts/startService1.sh
到目前为止它的工作完美无缺。
现在我注册了第二个服务
/myscripts/startService2.sh
并且必须意识到 PostInit 脚本似乎被第一个服务阻止(因为它无限运行)并且似乎不允许 PostInit 恢复到下一个任务。因此服务 2 永远不会启动。
为了让脚本继续执行,我将 附加&
到要执行的命令中。
/myscripts/startService1.sh &
和
/myscripts/startService2.sh &
这按预期工作,两个服务都按预期启动并运行。
但当我$ reboot
系统不会像以前那样在几秒钟内关闭(它最终似乎在几个小时后完成重新启动[我让它静置一夜])。
当重新启动初始化 ssh 会话(我被删除)并且所有服务在几秒钟内消失 - 但我仍然可以 ping 机器。重新连接ssh
不起作用(连接被拒绝)。
之前干净地退出(甚至杀死)服务$ reboot
没有任何效果。只要我&
在调用时附加了 ,整个问题也可以仅用一项服务来重现。显然,一个简单的自我结束过程ps -Auw > /myLogs/postInit.log &
也会导致这个问题。
我很困惑,真的需要提示。
更新:
我不知道该怎么说,但是……它已经解决了。我不知道怎么办。我所做的只是花了一些时间(写这个问题),然后尝试使用$ shutdown -r now
哪个有效。然后尝试了$ reboot
现在也有效。从那时起,一切都按预期运行,但我不知道我做了什么来修复它!写完这篇文章之后,我之前没有做过任何事情——除了运行shutdown -r
一次,然后一切都完成了神奇地工作了。我曾尝试强制重现该问题,但在我可以通过添加或删除那个小&
.我仍然必须显式地将脚本作为后台进程运行,否则 PostInit 脚本将被阻止。