我尝试关闭PC,然后在LAN上重新启动。
获得命令之一(关闭或重新启动)时,我执行以下命令之一:
subprocess.call(["shutdown", "-f", "-s", "-y"]) # Turn off
subprocess.call(["shutdown", "-f", "-r", "-t", "-c", "-y"]) # Restart
我想通知对方是否成功启动了该过程以及PC是否处于所需状态。
我知道可以执行一项功能,该功能将在执行命令几秒钟后检查PC是否还处于活动状态(这是一个很好的主意),但是又怎么知道需要几秒钟呢?而且,如果在发送一条消息指出PC仍在运行时会关闭PC,该怎么办?
我很好奇-执行这些命令后会发生什么?脚本会一直运行直到任务管理器将其杀死吗?命令后它会立即停止运行吗?
答案 0 :(得分:1)
诸如shutdown
之类的程序仅向init
发送消息(或任何现代替代方法)并立即退出;接下来要做什么。 Unix的典型行为是首先关闭诸如SSH服务器之类的服务器(这可能不会杀死您与计算机的连接),然后将SIGTERM发送给所有进程,等待几秒钟(通常是5秒)以使信号处理程序运行,然后将SIGKILL发送给任何幸存者。最后,文件系统被卸载,并且硬件停止或重新启动。
虽然不能保证第一阶段花费的时间足以让您报告成功执行shutdown
的情况,但通常可以;如果有问题,您可以赶快去找SIGTERM,让自己多花几秒钟的时间来传达消息。