通过SSH在后台执行远程python脚本

时间:2016-01-06 13:40:01

标签: python ssh

我有一个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'

运行该命令后,我的终端卡住了。

1 个答案:

答案 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 &