ฉันมีแอพพลิเคชั่นเว็บเซิร์ฟเวอร์ของฉันเริ่มต้นจากการบูทด้วยการพุ่งพรวด นี่คือสคริปต์พุ่งพรวด:
# 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
มันทำงานได้อย่างไม่มีที่ติบนเซิร์ฟเวอร์ Ubuntu 10.04 LTS และฉันมีความสุขมากกับมัน
อย่างไรก็ตามฉันมีเชลล์สคริปต์การปรับใช้ซึ่งล็อกอินโดยใช้ SSH เป็นmainuser
(นี่ไม่ใช่ sudoer) และจากนั้นจะอัปเดตไดเรกทอรีทำงานเป็นเวอร์ชันการปรับใช้ล่าสุด
ปัญหาที่นี่คือบริการจะต้องเริ่มต้นใหม่เพื่อให้แอปพลิเคชันโหลดไฟล์ต้นฉบับใหม่ อย่างไรก็ตามmainuser
ได้รับ ...
mainuser@Saturn101:~$ stop webapp
-bash: stop: command not found
... เมื่อพยายามหยุด ฉันต้องเรียกใช้sudo stop webapp
แต่ผู้ใช้รายนี้ไม่สามารถทำได้เนื่องจากเขาไม่ใช่ sudoer เพื่อเหตุผลด้านความปลอดภัยฉันไม่ต้องการให้เขาเป็น sudoer ด้วยรวมทั้งฉันไม่ต้องการใส่รหัสผ่าน sudo
ดังนั้นฉันmainuser
จะอนุญาตให้ทำงานstop webapp
และได้start webapp
อย่างไร
/sbin/stop webapp
stop: Unable to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
ฉันจะอนุญาตให้mainuser
เรียกใช้งานคำสั่งนี้เท่านั้นได้อย่างไร