Остановка не удалась
Явление:
При выполнении php start.php stop появляется сообщение stop fail
Первая возможность
Предполагается, что Workerman был запущен в режиме отладки, разработчик в терминале нажал ctrl z, чтобы отправить сигнал SIGSTOP на Workerman, что привело к тому, что Workerman перешел в фоновый режим и приостановился, поэтому он не может ответить на команду stop (сигнал SIGINT).
Решение:
В терминале, где был запущен Workerman, введите fg (отправит сигнал SIGCONT) и нажмите Enter, чтобы вернуть Workerman в рабочий режим на переднем плане, затем нажмите ctrl c (отправит сигнал SIGINT), чтобы остановить Workerman.
Если остановить не удалось, попробуйте выполнить следующие команды
killall -9 php
ps aux|grep -i workerman|awk '{print $2}'|xargs kill -9
Вторая возможность
Пользователь, выполняющий команду stop, и пользователь, запустивший Workerman, не совпадают, то есть у пользователя stop нет прав на остановку Workerman.
Решение:
Перейдите на пользователя, который запустил Workerman, или используйте пользователя с более высокими правами для остановки Workerman.
Третья возможность
Файл pid главного процесса Workerman был удален, что привело к тому, что скрипт не смог найти pid процесса и остановка не удалась.
Решение:
Сохраните файл pid в безопасном месте, смотрите в руководстве Worker::$pidFile.
Четвертая возможность
Процесс, соответствующий файлу pid главного процесса Workerman, не является процессом Workerman.
Решение:
Откройте файл pid главного процесса Workerman, чтобы просмотреть pid главного процесса. Файл pid по умолчанию находится в каталоге, параллельном Workerman. Выполните команду ps aux | grep pid главного процесса, чтобы проверить, является ли соответствующий процесс процессом Workerman. Если это не так, возможно, сервер был перезапущен, и сохраненный Workerman pid устарел, и этот pid был использован другим процессом, что приведет к неудаче при остановке. Если это так, просто удалите файл pid.
Пятая возможность
Расширение gRPC установлено, но соответствующие переменные окружения для gRPC не установлены, что приводит к тому, что при запуске создается дополнительный фоновой процесс, что вызывает сбой при остановке.