Arresto fallito
Fenomeno:
Eseguendo php start.php stop viene visualizzato il messaggio stop fail
Prima possibilità
Il presupposto è che Workerman sia stato avviato in modalità debug e che lo sviluppatore abbia premuto ctrl z nel terminale, inviando il segnale SIGSTOP a Workerman, che ha quindi portato Workerman in background e sospeso, impedendo di rispondere al comando stop (segnale SIGINT).
Soluzione:
Nel terminale dove è stato avviato Workerman, digitare fg (inviare il segnale SIGCONT) e premere invio, riportando Workerman in esecuzione in primo piano, quindi premere ctrl c (inviare il segnale SIGINT) per fermare Workerman.
Se non è possibile fermarlo, provare a eseguire i seguenti due comandi:
killall -9 php
ps aux|grep -i workerman|awk '{print $2}'|xargs kill -9
Seconda possibilità
L'utente che esegue il comando stop è diverso dall'utente che ha avviato Workerman, cioè l'utente stoppante non ha i permessi per fermare Workerman.
Soluzione:
Passare all'utente che ha avviato Workerman o utilizzare un utente con privilegi più elevati per fermare Workerman.
Terza possibilità
Il file pid del processo principale di Workerman è stato eliminato, il che porta a non trovare il processo pid, causando il fallimento dell'arresto.
Soluzione:
Salvare il file pid in una posizione sicura, fare riferimento al manuale Worker::$pidFile.
Quarta possibilità
Il processo corrispondente al file pid del processo principale di Workerman non è un processo Workerman.
Soluzione:
Aprire il file pid del processo principale di Workerman per controllare il pid del processo principale; il file pid è di default nella stessa directory di Workerman. Eseguire il comando ps aux | grep pid del processo principale per verificare se il processo corrispondente è un processo Workerman; se non lo è, è possibile che il server sia stato riavviato, causando il salvataggio di un pid scaduto da parte di Workerman, il quale è stato poi utilizzato da un altro processo, portando al fallimento dell'arresto. In questo caso, basta eliminare il file pid.
Quinta possibilità
È stata installata l'estensione grpc, ma non sono state impostate le variabili ambientali corrispondenti per l'estensione grpc; dopo l'avvio, si creerà un processo di montaggio aggiuntivo, causando il fallimento dell'arresto.