我有一个python文件" run.py"如下我的远程服务器。
import subprocess
subprocess.Popen(["nohup", "python", "/home/admin/Packet/application.py", "&"])
我想使用SSH从本地计算机运行该文件。我尝试如下。但是,我当地的终端卡在那里。它似乎并没有在后台运行。
ssh -n -f -i /Users/aws/aws.pem admin@hello_world.com 'python /home/admin/run.py'
运行该命令后,我的终端卡住了。
答案 0 :(得分:1)
以下是我正在使用的示例,您可以尝试这样的事情,自定义ssh_options。
import subprocess
ssh_options = '-o ConnectTimeout=10 -o PasswordAuthentication=no -o PreferredAuthentications=publickey -o StrictHostKeyChecking=no'
server_name = 'remote_server.domain'
cmd = 'ssh ' + ssh_options + ' ' + server_name + ' "/usr/bin/nohup /usr/bin/python /home/admin/run.py 2>&1 &"'
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
稍后您可以将输出重定向到平面文件,更改:
2>&1 &
有:
>> /path/lo/log_file.txt 2>&1 &