0

我尝试了下面的代码,它没有重新启动我的远程电脑。

for line in readips.readlines():
    line = line.strip()
    print("The ip address is : ") + str(line)
    rebootsys = "ssh root@"+str(line) + " reboot"
    print("The reboot system ip is:") + str(rebootsys)
    if(os.system(rebootsys %locals())==0):
        print("Done")
    else:
        print("Not able to reboot")

执行 print 语句时成功打印 IP。我是使用wing IDE一步一步运行的。当系统开始执行 if 条件if(os.system(rebootsys %locals())==0时它只是空闲,它不会进入下一步,如果它重新启动则必须移动print("Done")else 它必须移动 else 部分,而只是等待 if 条件本身。我
需要通过 python 脚本从我的 ubuntu 系统重新启动多个 ubuntu 系统。

4

1 回答 1

1

我建议切换到subprocess模块并从启动的命令中捕获输出,然后决定下一步如何处理启动的进程。假设system()由于许多原因,从优雅到安全性,这些天使用不被认为是一种好的做法。

第17.1.4.3节中有一个很好的例子,你可以用这个模块做什么。替换 os.system()17.1.4.5。替换 os.popen(), os.popen2(), os.popen3()。相信我,使用它值得投资几行更多代码:-)

于 2013-06-14T11:34:35.560 回答