Задать вопрос
Driver86
@Driver86
Немодератор toster.ru

Не завершается php-демон после выполнения всего кода, это почему?

Не пойму, почему php-демон не завершается после выполнения скрипта.

#!/usr/bin/env php
<?php

declare(ticks=1);

$pid = pcntl_fork();
if ($pid) {
    exit;
}
cli_set_process_title('myProcess');

echo 'OK';


Запускаю в консоли, вижу вывод OK.

Но
ps ax | grep myProcess
Показывает:
733814 pts/0 S 0:00 myProcess
Т.е. демон остаётся висеть в памяти. Что не так?
php 8.1, debian.
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Средний 4 комментария
Решения вопроса 1
Driver86
@Driver86 Автор вопроса
Немодератор toster.ru
Проблема оказалась в расширении php-grpc. Видимо, там баг какой-то, наличие этого расширения как-то мешает нормальному завершению fork-процесса php.

Пришлось решить проблему через костыль
register_shutdown_function(function () {
posix_kill(getmypid(), SIGKILL);
});


upd
Хотя решение там же есть...
https://github.com/grpc/grpc/tree/master/src/php#p...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы