gpt4 book ai didi

python - 在子进程python + bash中获取进程的pid

转载 作者:太空狗 更新时间:2023-10-29 12:25:54 25 4
gpt4 key购买 nike

我需要用另一个程序找到在 bash 脚本中启动的进程的 pid。我使用 sshpass 输入密码,sshpass 启动 ssh 客户端,然后该客户端打开 sshtunnel 到服务器。以下是示例:

start_tunnel.sh
#!/bin/bash
exec sshpass -p 'passw' ssh -D :port user@$server -o StrictHostKeyChecking=no -f -N
exit

我用 subrocess.Popen 启动它:

proc = subprocess.Popen('start_tunnel.sh')

脚本启动正常,它正常结束并返回 0,我可以得到它的 PID,但是有没有可能得到启动的 sshclient 的 PID?

最佳答案

默认情况下,proc.pid 将返回 shell(即父进程)的 PI​​D。您要查找的是子进程的 PID (sshpass)。

所以在subprocess.Popen中设置shell=FalseDocumentation is here .

关于python - 在子进程python + bash中获取进程的pid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40519944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com