मुझे अपने वेबसर्वर एप्लिकेशन को 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
यह उबंटू सर्वर 10.04 एलटीएस पर त्रुटिपूर्ण रूप से काम करता है और मैं इसके बारे में बहुत खुश हूं।
हालांकि, मेरे पास एक तैनाती शेल स्क्रिप्ट है जो SSH के रूप में उपयोग करने में लॉग इन करता है mainuser
(यह एक sudoer नहीं है) और फिर नवीनतम तैनाती संस्करण के लिए कार्यशील निर्देशिका को अपडेट करेगा।
यहां मुद्दा यह है कि सेवा को फिर से शुरू करने की आवश्यकता है ताकि एप्लिकेशन नए स्रोत फ़ाइलों को लोड करें। हालांकि, mainuser
एक हो जाता है ...
mainuser@Saturn101:~$ stop webapp
-bash: stop: command not found
... जब इसे रोकने की कोशिश की जा रही है। मुझे दौड़ना है sudo stop webapp
, लेकिन यह उपयोगकर्ता ऐसा नहीं कर सकता है क्योंकि वह सुडोल नहीं है। सुरक्षा कारणों से मैं नहीं चाहता कि वह सूडोअर भी बने, साथ ही मैं सूडो पासवर्ड नहीं डालना चाहता।
तो मैं कैसे 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
केवल इस आदेश को निष्पादित करने की अनुमति कैसे दूंगा?