当我使用fabric reboot()时,为什么我的远程主机返回错误代码-1?

Jon*_*ark 5 python linux bash fabric

本地主机环境:CentOS 7,Python 3.5.1,Fabric3(1.11.1.post1)
远程主机环境:CentOS 7

fibfile:

def fuc():
    reboot()
Run Code Online (Sandbox Code Playgroud)

庆典:

fab -f fibfile.py -H host -u root -p password
Run Code Online (Sandbox Code Playgroud)

远程主机确实重启但返回fatalError:

sudo() received nonzero return code -1 while executing 'reboot'!
Run Code Online (Sandbox Code Playgroud)

现在我warn_only用来防止失败:

fabfile:

def test():
    with settings(warn_only=True):
        reboot()
Run Code Online (Sandbox Code Playgroud)

Chr*_*ong 5

我开始在一些新的虚拟机上遇到这个问题。我认为他们确实关闭得太快,如乔恩·史塔克(Jon Stark)所说。

要解决此问题,我将忽略错误和警告,如下所示。

with settings(hide('warnings'),
              warn_only=True,
             ):
    sudo("shutdown -r now")
Run Code Online (Sandbox Code Playgroud)


Jon*_*ark 4

我在使用ansible时发现了类似的问题:链接

我认为最上面的答案是正确的:

reboot关闭服务器的速度太快,以至于服务器正在断开 SSH 连接。

shutdown -r now返回相同的致命错误:

sudo() 在执行“shutdown -r now”时收到非零返回代码 -1!

shutdown -r +1返回成功:

out: 计划于 UTC 时间 2016-05-23 星期一 14:16:48 关闭,使用 'shutdown -c' 取消。

但关机只能延迟至少一分钟。所以我们只能选择等待一分钟或者忽略这个错误。