2

В коде PHP у меня есть следующее:

run.php

<?php
shell_exec("php theprocess.php > /dev/null 2>&1 &");
?>

Я запускаю run.php из браузера (например, http://localhost/run.php)

Тогда я напечатал: PS UX

username [~/www/site/test]# ps ux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
username   847  0.0  0.1  23808  7724 ?        R    16:55   0:00 php theprocess.php
username   849  0.0  1.2  89504 53244 ?        R    16:55   0:00 php theprocess.php
username   851  0.0  0.7  89504 31592 ?        R    16:55   0:00 php theprocess.php
username   853  0.0  0.1  23628  4636 ?        R    16:55   0:00 php theprocess.php
username   854  0.0  0.0   2276   824 ?        R+   16:55   0:00 ps ux
username  3880  0.0  0.0  10080  1704 ?        S    16:33   0:00 sshd: username@pts/2
username  3883  0.0  0.0   2676  1368 ?        S    16:33   0:00 -jailshell

Я не понимаю, почему он показывает более 1 процесса theprocess.php? Я только казнил 1 раз. Я не выполнил больше 1.

Редактировать:

И почему он все еще работает на заднем плане? он должен завершить theprocess.php завершить задачу.

1 ответ1

1

Я исправил проблему!

При запуске скрипта из браузера он не рассматривается как PHP-клиент.

замещать

shell_exec("/usr/bin/php theprocess.php > /dev/null 2>&1 &");

к

shell_exec("/usr/bin/php-cli theprocess.php > /dev/null 2>&1 &");

У меня больше нет множественных процессов, работающих в фоновом режиме.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .