Tengo mi aplicación de servidor web comenzando en el arranque usando upstart. Este es el script de inicio:
# web app node upstart file at /etc/init/webapp.conf
description "web application"
start on started mongodb
stop on runlevel [06]
respawn
respawn limit 10 100
env NODE_ENV=production
pre-start script
ulimit -n 2048
end script
exec start-stop-daemon --start -c mainuser --exec /usr/bin/make -- -C /home/mainuser/app start-prod
Esto funciona perfectamente en el servidor Ubuntu 10.04 LTS y estoy muy contento con eso.
Sin embargo, tengo un script de shell de implementación que inicia sesión usando SSH como mainuser
(esto no es un sudoer) y luego actualizará el directorio de trabajo a la última versión de implementación.
El problema aquí es que el servicio debe reiniciarse para que las aplicaciones carguen los nuevos archivos fuente. Sin embargo, mainuser
obtiene un ...
mainuser@Saturn101:~$ stop webapp
-bash: stop: command not found
... cuando intentas detenerlo. Tengo que correr sudo stop webapp
, pero este usuario no puede hacer esto porque no es un sudoer. Por razones de seguridad, tampoco quiero que sea un sudoer, además no quiero insertar la contraseña de sudo.
Entonces, ¿cómo dejo mainuser
correr stop webapp
y start webapp
?
/sbin/stop webapp
me sale stop: Unable to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
. ¿Cómo permitiría mainuser
ejecutar solo este comando?