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.