我有一个可以在我的主机和其他几台服务器上运行的脚本。我想使用 ssh 将此脚本作为我的主机上的后台进程与远程计算机一起启动,并将 stdout/stderr 输出到主机以用于我的主机后台进程,并输出到远程计算机以用于远程计算机后台任务。
我尝试过
subprocess.check_output(['python' ,'script.py' ,'arg_1', ' > file.log ', ' & echo -ne $! ']
但它不起作用。它不给我 pid 也不写入文件。它可以工作shell=True
,但后来我读到出于安全原因使用 shell=True 不好。
然后我尝试了
p = subprocess.Popen(['python' ,'script.py' ,'arg_1', ' > file.log ']
现在我可以获得进程 pid,但输出没有写入远程日志文件。
使用下面建议的 stdout/stderr 参数将在我的主机而不是远程计算机中打开日志文件。
有人可以建议我一个既可以在我的主机上工作,也可以通过 ssh 连接到远程服务器并在那里启动后台进程的命令吗?并写入输出文件?
<HOW_TO_GET_PID> = subprocess.<WHAT>( ([] if 'localhost' else ['ssh','<remote_server>']) + ['python', 'script.py', 'arg_1' <WHAT>] )
有人可以完成上面的伪代码吗?
慕盖茨4494581
蓝山帝景
相关分类