python调用命令行获取pid_命令行命令/命令运行时的pid及获取

本文通过一个示例详细阐述了Python调用命令行时,命令行输入的命令、命令运行时的PID以及如何获取进程PID的过程。通过`os`和`subprocess`模块,展示了不同PID之间的关系,包括子进程PID、会话ID和组PID,并讨论了`pgrep`命令获取实际运行PID的方法。
摘要由CSDN通过智能技术生成

命令行输入的命令,和命令运行时的PID并不是同一个。

例如有如下一段代码perf_test.py:

1 importsubprocess2 importtime3 importos4 importsignal5

6 cmd = "sudo perf record -e cpu-clock -g -p {} -o perf_{}.data".format(os.getpid(), os.getpid())7 print(cmd)8 p = subprocess.Popen(cmd, shell=True)9 print("cur process pid: {}".format(os.getpid()))10 print("cur process's parent process pid: {}".format(os.getppid()))11

12 print("subprocess pid: {}".format(p.pid))13 print("session pid which subprocess exist in: {}".format(os.getsid(p.pid)))14 print("subprocess's group pid: {}".format(os.getpgid(p.pid)))15

16 time.sleep(10)17 get_cmd_pid = "pgrep '{}'".format('perf')18 cmd_pid =os.popen(get_cmd_pid).read()19 print("{} : {}".format(get_cmd_pid, cmd_pid))20

21 os.kill(p.pid, signal.SIGINT)

(1)在命令行输入:$ sudo python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值