Ho la mia applicazione web server a partire all'avvio usando upstart. Questo è lo script upstart:
# 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
Funziona perfettamente sul server Ubuntu 10.04 LTS e ne sono molto contento.
Tuttavia, ho uno script di shell di distribuzione che accede utilizzando SSH come mainuser
(questo non è un sudoer) e aggiornerà quindi la directory di lavoro all'ultima versione di distribuzione.
Il problema qui è che il servizio deve essere riavviato in modo che le applicazioni carichi i nuovi file di origine. Tuttavia, mainuser
ottiene un ...
mainuser@Saturn101:~$ stop webapp
-bash: stop: command not found
... quando si cerca di fermarlo. Devo correre sudo stop webapp
, ma questo utente non può farlo poiché non è un sudoer. Per motivi di sicurezza, non voglio nemmeno che sia un sudoer, inoltre non voglio inserire la password di sudo.
Quindi, come posso consentire mainuser
l'esecuzione stop webapp
e start webapp
?
/sbin/stop webapp
ottengo stop: Unable to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
. Come consentirei mainuser
di eseguire solo questo comando?