python3 如何执行一个远程命令并保留在后台执行
时间: 2024-10-20 14:07:53 浏览: 26
Python3 执行系统命令并获取实时回显功能
在Python 3中,你可以使用`subprocess`模块来执行远程命令并在后台运行。`subprocess.Popen`函数可以用来启动新的进程,并返回一个进程对象,允许你监控其状态。下面是一个简单的例子:
```python
import subprocess
# 指定要执行的远程命令(这里假设是SSH连接)
cmd = ['ssh', 'username@remote_host', 'command_to_run']
# 将命令放入列表,并设置shell=True(因为命令不是直接字符串,需要shell支持)
# 创建进程,并立即返回,不在当前程序阻塞
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
# 这里只启动了进程,如果没有其他操作,进程会在后台继续运行
print(f"Command started with PID {process.pid}")
# 如果你想获取命令的输出,可以这样做:
# 输出和错误信息会存储在stdout和stderr属性中
stdout, stderr = process.communicate()
if stdout:
print("Standard output:")
print(stdout.decode('utf-8'))
if stderr:
print("Error output:")
print(stderr.decode('utf-8'))
# 使用`.poll()`检查进程是否结束
while process.poll() is None:
time.sleep(1) # 等待一段时间,直到进程结束
阅读全文