Parar Falhou
Fenômeno:
Executar php start.php stop resulta em stop fail
Primeira Possibilidade
O pré-requisito é que o workerman foi iniciado em modo DEBUG, e o desenvolvedor pressionou ctrl z no terminal, enviando o sinal SIGSTOP para o workerman, fazendo com que o workerman entrasse em background e fosse suspenso (pausado), portanto, não consegue responder ao comando stop (sinal SIGINT).
Solução:
No terminal onde o workerman foi iniciado, digite fg (enviando o sinal SIGCONT) e pressione Enter para trazer o workerman de volta para o primeiro plano, então pressione ctrl c (enviando o sinal SIGINT) para parar o workerman.
Se não for possível parar, tente executar os seguintes comandos:
killall -9 php
ps aux|grep -i workerman|awk '{print $2}'|xargs kill -9
Segunda Possibilidade
O usuário que executa o stop e o usuário que iniciou o workerman são diferentes, ou seja, o usuário que executa stop não tem permissão para parar o workerman.
Solução:
Mude para o usuário que iniciou o workerman, ou use um usuário com permissões mais altas para parar o workerman.
Terceira Possibilidade
O arquivo pid do processo principal do workerman foi deletado, fazendo com que o script não conseguisse encontrar o processo pid, resultando em uma falha ao parar.
Solução:
Salve o arquivo pid em um local seguro, consulte o manual Worker::$pidFile.
Quarta Possibilidade
O processo correspondente ao arquivo pid do processo principal do workerman não é um processo workerman.
Solução:
Abra o arquivo pid do processo principal do workerman para verificar o pid do processo principal, o arquivo pid está, por padrão, no diretório paralelo ao Workerman. Execute o comando ps aux | grep pid do processo principal para verificar se o processo correspondente é um processo Workerman; se não for, pode ser que o servidor tenha reiniciado, fazendo com que o pid salvo pelo workerman seja um pid expirado, e esse pid foi usado por outro processo, resultando na falha ao parar. Se este for o caso, simplesmente delete o arquivo pid.
Quinta Possibilidade
A extensão grpc foi instalada, mas a variável de ambiente correspondente à extensão grpc não foi configurada, fazendo com que um processo montado adicional seja criado após a inicialização, resultando em falha ao parar.