pythonprocess

After starting process, how to get parent's PID in the child?


In Python, I start a new process via Popen(), which works fine. Now in the child process I want to find the parent's process ID.

What is the best way to achieve this, maybe I can pass the PID via the Popen constructor, but how? Or is there a better way to do so?

PS: If possible I would prefere a solution using only standard libraries.


Solution

  • You can use os.getppid():

    os.getppid()

    Return the parent’s process id.
    

    Note: this works only on Unix, not on Windows. On Windows you can use os.getpid() in the parent process and pass the pid as argument to the process you start with Popen.

    Windows support for os.getppid was added in Python 3.2.