Saya sudah mendapatkan aplikasi server web saya mulai saat boot menggunakan pemula. Ini adalah skrip pemula:
# 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
Ini berfungsi dengan sempurna di server Ubuntu 10,04 LTS dan saya sangat senang karenanya.
Namun, saya memiliki skrip shell penempatan yang masuk menggunakan SSH sebagai mainuser
(ini bukan sudoer) dan kemudian akan memperbarui direktori kerja ke versi penyebaran terbaru.
Masalahnya di sini adalah bahwa layanan perlu di-restart sehingga aplikasi memuat file sumber baru. Namun, mainuser
mendapat ...
mainuser@Saturn101:~$ stop webapp
-bash: stop: command not found
... ketika mencoba menghentikannya. Saya harus menjalankan sudo stop webapp
, tetapi pengguna ini tidak dapat melakukan ini karena ia bukan sudoer. Untuk alasan keamanan saya tidak ingin dia menjadi sudoer juga, ditambah saya tidak ingin memasukkan kata sandi sudo.
Jadi, bagaimana cara saya mainuser
menjalankan stop webapp
dan menjalankan start webapp
?
/sbin/stop webapp
saya mengerti stop: Unable to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
. Bagaimana saya mengizinkan mainuser
hanya menjalankan perintah ini?