我有一台 Ubuntu 文件服务器,我想使用远程控制电源插座来打开/关闭它。我还有一个接收和发送远程控制信号的设备;它通过 USB 连接;我使用辅助程序来发送信号。因此,我没有直接向插座发送关机信号,而是向 Ubuntu 发送关机信号。这个想法是 Ubuntu 启动关机并切断自己的电源。这使我以后能够通过远程控制打开电源插座来启动计算机。
据我所知,理想情况下,切断电源应该在 内完成/etc/rc0.d/S90halt
,对吗?但此时,我的辅助程序(可以向插座发送断电信号)已被终止。
我有什么选择?是否可以保持我的远程控制程序运行?S90halt
即使磁盘已卸载,我是否可以启动它?
答案1
我找到了一种方法来做到这一点:
在启动时,我将远程控制辅助程序作为 nohup 进程启动。然而,在关机期间,它被杀死S20sendsigs
。因此我使用一个新脚本再次启动它,S21remotecontrol
该脚本再次使用 nohup。辅助程序启动一个嵌入式 Web 服务器。这样我只需要添加curl http://localhost:8081/poweroff
到S90halt
。
我不确定为什么curl
实际上可用,S90halt
因为此时所有文件系统都应该已卸载。尽管如此,它确实有效。我的解决方法没有用:我添加了一个延迟选项,这样curl
可以在卸载之前调用,但会延迟切换命令几秒钟。
重要!辅助程序一定不写入日志文件,因为在关机期间卸载后会失败并可能导致程序崩溃。为了启动帮助程序,我使用:nohup command >/dev/null 2>&1 &
。