Tengo una aplicación de meteoros simple que estoy ejecutando en un servidor Amazon EC2. Todo está funcionando muy bien. Lo inicio manualmente con mi usuario a través de meteor en el directorio del proyecto.
Sin embargo, lo que me gustaría es que esta aplicación
Intento ejecutarlo a través de nohup meteor & , pero cuando trato de cerrar sesión en la instancia EC2, aparece el mensaje "Tiene trabajos en ejecución". Si sigue cerrando la sesión, se detendrá la aplicación.
¿Cómo puedo hacer que la aplicación se inicie al inicio y permanezca activa (a menos que se bloquee por algún motivo)?
Instale para siempre y use un script de inicio.
$ npm install -g foreverTengo varias secuencias de comandos para administrar mi entorno de producción: la secuencia de comandos de inicio se parece a:
#!/bin/bash forever stopall export MAIL_URL=... export MONGO_URL=... export MONGO_OPLOG_URL=... export PORT=3000 export ROOT_URL=... forever start /home/ubuntu/apps/myapp/bundle/main.js exit 0 Convenientemente, también se agregará a un archivo de registro en ~/.forever que mostrará cualquier error encontrado al ejecutar su aplicación. Puede obtener la ubicación del archivo de registro y otras estadísticas sobre su aplicación con:
$ forever list Para que su aplicación comience en el inicio, debe hacer algo apropiado para su versión de Linux. Tal vez pueda simplemente poner el script de inicio en /etc/rc.local . Para ubuntu ver esta pregunta .
También tenga en cuenta que realmente debería empaquetar su aplicación si la usa en producción. Consulte esta comparación para obtener más detalles sobre las diferencias.
Estoy usando advenedizo en el servidor Ubuntu que debería poder instalar fácilmente en Amazon Linux.
Este es aproximadamente mi /etc/init/myapp.conf :
start on (local-filesystems and net-device-up IFACE=eth0) stop on shutdown respawn respawn limit 99 5 script export HOME="/home/deploy" export NODE_ENV="production" export MONGO_URL="mongodb://localhost:27017/myappdb" export ROOT_URL=http://localhost export MAIL_URL=smtp://localhost:25 export METEOR_SETTINGS='{"somesetting":true}' cd /var/www/myapp/bundle/ exec sudo -u deploy PORT=3000 /usr/bin/node main.js >> /var/log/node.log 2>&1 end script Luego puedo iniciar y detener myapp manualmente de esta manera:
sudo start myapp sudo stop myappCreo que este paquete resuelve tu problema: https://github.com/arunoda/meteor-up
que parece usar forever : https://github.com/nodejitsu/forever