本地主机环境:CentOS 7、Python 3.5.1、Fabric3 (1.11.1.post1)
远程主机环境:CentOS 7
fibfile:
def fuc():
reboot()
砰:
fab -f fibfile.py -H host -u root -p password
远程主机确实重新启动,但返回致命错误:
sudo() received nonzero return code -1 while executing 'reboot'!
现在我使用warn_only
来防止失败:
晶圆厂:
def test():
with settings(warn_only=True):
reboot()
我开始在一些新的虚拟机上遇到这个问题。我认为他们关闭得太快了,正如乔恩斯塔克所说。
为了修复它,我忽略了错误和警告,就像这样。
with settings(hide('warnings'),
warn_only=True,
):
sudo("shutdown -r now")
我在使用 ansible 时发现了类似的问题:链接
我认为最重要的答案是正确的:
reboot
关闭服务器的速度如此之快,以至于服务器正在断开 SSH 连接。
shutdown -r now
返回相同的致命错误:
sudo() 在执行"立即关闭 -r "时收到非零返回代码 -1!
shutdown -r +1
返回成功:
out:关闭时间安排在星期一 2016-05-23 14:16:48 UTC,使用"shutdown -c"取消。
但关机只能延迟至少一分钟。所以我们只能选择等待一分钟或忽略错误。
您可以将 shell 会话放入后台,该会话休眠 1 秒,然后执行 reboot
命令。由于nohup问题,必须在不使用nohup
命令的情况下完成。我使用tmux
...
reboot(command='tmux new-session -d "sleep 1; reboot;"')