posix_getppid

(PHP 4, PHP 5)

posix_getppidReturn the parent process identifier

Описание

int posix_getppid ( void )

Return the process identifier of the parent process of the current process.

Возвращаемые значения

Returns the identifier, as an integer.

Примеры

Пример #1 Example use of posix_getppid()

<?php
echo posix_getppid(); //8259
?>

Коментарии

WARNING, when using proc_open, your child will NOT get the parent php process's PID by using posix_getppid() , it will actually get the pid of a shell ( /bin/sh ? ) started by php, which in turn starts the child.  i don't currently have a good workaround for this, but i'm working around it by having the parent write it's pid to a file and having the chidren read the file
2016-10-26 01:45:22
http://php5.kiev.ua/manual/ru/function.posix-getppid.html
when using proc_open, the child's ppid is NOT your php script, but rather a shell started by proc_open's pid. to get your pid, your proc_open child needs to get the parent's parent's (aka grandparent's) pid. here's a way to do that in PHP on linux: 

function posix_getpppid(): int {
    return ( int ) (explode ( " ", file_get_contents ( "/proc/" . posix_getppid () . "/stat" ) ) [3]);
}

(thanks to TML @ irc.freenode.net/##PHP for the technique)

(i said most of this in a previous comment, but i didn't have a good solution for it. now i have. if someone with the privileges read this, can you delete this notice and my previous comment please?)
2017-04-10 22:33:12
http://php5.kiev.ua/manual/ru/function.posix-getppid.html
answering to function.posix-getppid#120088

if you're using proc_open and you want to get the pid of the calling php-process, use proc open with usage "exec php $scriptname". In that case, you can get the real parent-id, because php doesn't start a new shell.
2017-09-15 12:28:00
http://php5.kiev.ua/manual/ru/function.posix-getppid.html
Автор:
posix_getppid will not work on Windows.
Here's an alternative:

<?php
if(strncasecmp(PHP_OS"win"3) == 0) {
   
$pid getmypid();  // child process ID
   
$parent_pid shell_exec("wmic process where (processid=$pid) get parentprocessid");
   
$parent_pid explode("\n"$parent_pid);
   
$parent_pid intval($parent_pid[1]);

   echo 
"Child: $pid  Parent: $parent_pid\n";           
}
?>
2018-02-22 10:58:14
http://php5.kiev.ua/manual/ru/function.posix-getppid.html

    Поддержать сайт на родительском проекте КГБ