Почему в PHP CLI getmypid () возвращает 0 в качестве pid? - PullRequest
0 голосов
/ 29 июля 2010

Я разрабатываю долго работающий скрипт командной строки и, конечно же, хочу, чтобы он сам не запускался более одного раза.Поэтому я пишу файл .pid и при запуске проверяю, существует ли процесс с таким PID.Проблема заключается в том, что в Windows он возвращает 0 в качестве PID, поэтому я всегда получаю процесс с этим запущенным PID (System Idle имеет PID 0).

Кто-нибудь знает, как это исправить?Могу ли я сделать демон, работающий на Windows?Может быть, исправление будет разветвлено с помощью pcntl_fork?

PS Я использую Yii и его класс CConsoleCommand в качестве основы.

1 Ответ

0 голосов
/ 29 июля 2010

Я могу ошибаться, но я не думаю, что если вы напишите .pid, то в Windows он проверит файл.

Вы можете проверить, существует ли файл и не запускается ли снова. И afaik pcntl_fork не работает на Windows (по умолчанию, то есть с каким-то * эмулятором nix это может работать)

...