我找不到一个简单的答案:我正在使用 paramiko 登录并远程执行多个进程,我需要每个进程的 PID,以便以后检查它们。 paramiko 中似乎没有获取已执行命令的 PID 的函数,因此我尝试使用以下方法:
stdin,stdout,stderr = ssh.exec_command('./someScript.sh &;echo $!;)
我认为然后通过标准输出进行解析会返回 PID,但事实并非如此。我假设我应该在后台运行脚本以获得 PID(在它运行时)。有没有更简单、更明显的获取 PID 的方法?
最佳答案
获取远程进程ID的方法如下:
def execute(channel, command):
command = 'echo $$; exec ' + command
stdin, stdout, stderr = channel.exec_command(command)
pid = int(stdout.readline())
return pid, stdin, stdout, stderr
关于python - 从 paramiko 获取 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9872872/