我想连接一台远程计算机并从python中在该计算机上运行后台脚本。
我尝试过:
os.system("ssh root@10.0.0.1 \' nohup script.sh & \')
但似乎不起作用。如果我将nohup放在script.sh中,然后直接运行
os.system("ssh root@10.0.0.1 \' script.sh \'")
在两种情况下,nohup命令均不起作用。
我很困惑为什么这样做,还有没有人知道如何通过python进行后台工作,或者这样做是不可能的吗?
答案 0 :(得分:0)
您遇到什么样的错误?您正在使用哪个版本的Python?
您应该看看这个Python subprocess - run multiple shell commands over SSH
import subprocess
sshProcess = subprocess.Popen(["ssh", "root@10.0.0.1"],
stdin=subprocess.PIPE,
stdout = subprocess.PIPE,
universal_newlines=True,
bufsize=0)
sshProcess.stdin.write("nohup script.sh &")
答案 1 :(得分:0)
例如,您有一个本地脚本(python,bash等。在这里,我使用python脚本向您演示)
首先,您在本地创建一个python文件。可以说hello.py
# 'hello.py'
import os
print os.system('hostname')
现在第二个是python脚本,它将在远程计算机上执行上述 hello.py
import pathos
copy = pathos.core.copy('hello.py', destination='abc.remote.com:~/hello.py')
exec = pathos.core.execute('python hello.py', host='.remote.com')
print exec.response()