Levantar Websocket PHP manualmente
En un post no muy lejano, expliqué cómo instalar un servidor y cliente de Websocket PHP. En este caso vamos a ver cómo levantarlo y matarlo manualmente en un servidor CentOS.
¿Cuándo intentar la implementación manual?
Hay casos donde no es posible configurar un daemon. Dada la situación, se podría
pensar en configurar al menos con gulp una tarea para
levantar el ws manualmente a través del comando nohup
nohup php /opt/ws/serverWithClient.php > /opt/ws/ws_log 2>/opt/ws/error_log &
De este modo, todo el dump que genere el archivo será guardado en un ws_log para poder tener un registro de lo que se va generando. Adicionalmente, el archivo error_log contendrá cualquier error que pueda surgir con la ejecución del script.
Fuente: http://stackoverflow.com/questions/4797050/how-to-run-process-as-background-and-never-die
Matar el proceso activo
Para el caso de un reinicio del proceso, se debe buscar el PID del proceso php que está corriendo el archivo. Luego, con ese dato matar el proceso en cuestión
ps aux | grep "/opt/ws/serverWithClient.php"
Esta ejecución brindará un resultado similar al siguiente
root 2613 0.0 0.2 264144 19972 pts/0 S 13:19 0:00 php /opt/ws/serverWithClient.php
root 3187 0.0 0.0 103460 1164 pts/0 S+ 13:25 0:00 grep --color php /opt/ws/serverWithClient.php
Importante: la segunda fila refiere a la búsqueda que acabamos de hacer. Nótese que el proceso es “grep” y no “php” como sucede en la primera. A nosotros nos interesa matar el proceso “php” relacionado
Entonces, el PID es el número de la segunda columna. En nuestro caso, es “2613”. Con ese número luego se ejecuta:
kill 2613
Con el proceso finalizado, ahora podemos proceder con el reinicio del proceso websocket detallado en el apartado anterior.
Comprobar funcionamiento
Ingresar a http://www.websocket.org/echo.html y probar la dirección del websocket
ws://<url>:9090
. El resultado debe ser “this browser supports WebSocket”.
¡Gracias por tu tiempo!
Soy nahuelhds. Si te gusta lo que hago, podés...