Как мне разветвить новый процесс и вернуть его PID в Perl? - PullRequest
0 голосов
/ 17 сентября 2009

Моя проблема связана с использованием fork() в коде Perl. Я хочу запустить новый процесс, перехватить его PID и вернуть его в программу вызываемого абонента. Есть ли какая-нибудь команда в Perl, которая сделала бы это возможным?

Ответы [ 4 ]

13 голосов
/ 17 сентября 2009

да, fork

Цитирование с этой страницы:

Возвращает дочерний pid родительскому. процесс , 0 дочернему процессу или undef если вилка не удалась.

6 голосов
/ 17 сентября 2009
my $pid = fork();
if ($pid == 0)
{
    # We are the child.
}
elsif defined($pid)
{
    # We are the parent of child with PID=pid
}
else
{
    # The fork failed
}
6 голосов
/ 17 сентября 2009

fork возвращает дочерний pid для родителя и 0 для дочернего.

4 голосов
/ 17 сентября 2009

Ну, функция Perl fork возвращает PID потомка родителю и 0 потомку, разве это не то, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...