1 votos

¿Por qué termina mi script de bash?

Tengo un nodo de la aplicación que se ejecuta en mi Linux servidor de hosting.

A veces la aplicación se bloquea y tengo que reiniciar, así que me registro en y escriba los siguientes comandos:

pkill node
cd public_html/n49900_dpndev
node server.js &

Y la aplicación se ejecuta de nuevo.

Ahora me gustaría poner esto en un script así que simplemente necesita para iniciar la secuencia de comandos (o puede ejecutar desde un script PHP, por ejemplo).

He creado un archivo llamado "startnode":

#!/bin/bash
pkill node
cd public_html/n49900_dpndev
node server.js &

He cambiado los permisos con chmod 755 startnode.

Pero cuando voy a ejecutarlo con ./startnode responde con:

Terminado

¿Qué tengo que hacer para que los comandos que escriba manualmente también trabajo en el script de bash?

4voto

chutz Puntos 4628

El nombre del script tiene "nodo" en el nombre y pkill node probablemente lo está matando.

Usar pkill -x node para matar solo los procesos cuyo nombre es exactamente "nodo" podría ser más de su agrado. O incluso pkill -f -x "node server.js" para finalizar el proceso con la línea de comandos completa exacta.

1voto

Mark Puntos 11

pkill está matando todos los procesos iniciados con un programa con un nombre que contiene la palabra node incluso tu script

Cambie el nombre de su secuencia de comandos a cualquier nombre que no contenga la palabra node

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: