python - 在 Python 中从进程 ID 获取父进程和子进程 ID

标签 python process solaris rhel

我正在尝试获取我想要的进程的 ppid

我使用下面的代码来获取pid

proc=subprocess.Popen('ps -ae | grep ruby', shell=True, stdout=subprocess.PIPE, )
output=proc.communicate()[0]
str = output.split()

现在在 str[0] 中,我有进程的 pid 说 ruby​​,我想得到父进程 ID ppid 和子进程 ID相同的过程。

我需要此解决方案在 Solaris 以及 Red Hat Enterprise Linux 6.0 上运行

有什么方法可以像 getppid()getchildid() 那样获取吗?还是需要再次通过grep命令进行拆分?

最佳答案

使用此代码是个坏主意。您的代码不适用于 solaris。 您可以使用“psutil”库,这样您就可以使代码独立于操作系统。 https://github.com/giampaolo/psutil

p = psutil.Process(7055)
parent_pid = p.ppid()

关于python - 在 Python 中从进程 ID 获取父进程和子进程 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20291233/

相关文章:

c# - 使用参数从 c# 运行命令行?

c++ - execv 调用后打开文件句柄会发生什么情况? (C++)

c - 为什么 crontab 改变进程的信号句柄行为?

solaris - fesetflushtozero() 在各种 Unice 上的等价物

python - 检查数据框中的每一行和每一列,并用用户定义函数替换值

python - Django 迁移和 FileSystemStorage 取决于设置

将基于进程的程序转换为基于线程的版本?

mysql - PDO异常 : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in lock_may_be_available()

python - 如何编写使用其他 C 程序的父程序?

c# - .Net : Running an embedded interpreter 的 Python