मैं अपने नोड सर्वर के लिए एक launchd.plist फ़ाइल लिखने की कोशिश कर रहा हूं। मैं अपने नोड सर्वर को चलाने के लिए हमेशा के लिए उपयोग कर रहा हूँ। मैं सर्वर को बूट पर शुरू करना चाहता हूं। मैं पहले चलाने के लिए mongodb लॉन्च डीस्ट के लिए भी इंतजार करना चाहूंगा।ओएसएक्स लॉन्च किया गया नोड हमेशा के लिए प्रक्रिया
मैंने होमब्री का उपयोग करके मोंगोबब स्थापित किया और यह पहले से ही launchd.plist के साथ आया था। मैं निम्नलिखित निष्पादित: MongoDB के लिए
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
plist है:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.mongodb</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/mongodb/mongod</string>
<string>run</string>
<string>--config</string>
<string>/usr/local/etc/mongod.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>WorkingDirectory</key>
<string>/usr/local</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
<key>StandardOutPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
<key>HardResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>1024</integer>
</dict>
<key>SoftResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>1024</integer>
</dict>
</dict>
</plist>
अगर मैं बंद कंप्यूटर और पुनः आरंभ MongoDB एकदम सही ढंग से ऊपर सक्रिय करता है।
हालांकि मेरा नोड सर्वर प्रारंभ नहीं हो रहा है। कोई विचार?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>com.test.app</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/forever</string>
<string>-a</string>
<string>-l</string>
<string>/var/log/app/app.log</string>
<string>-e</string>
<string>/var/log/app/app_error.log</string>
<string>/data/server/app.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
संपादित करें:
लॉग फ़ाइल के लिए लिख और मैं देख रहा हूँ इस:
env: नोड: ऐसा कोई फ़ाइल या निर्देशिका
मुझे लगता है कि इसका मतलब है कि नोड बाइनरी नहीं मिल सका। मैं $ पाथ प्रतिबिंबित कर सकता हूं और/usr/local/bin मेरे पथ में है। मैं टर्मिनल से नोड शुरू कर सकता हूं। विचार? हमेशा के लिए पहले
यह अपेक्षा के अनुरूप काम नहीं करता है। हालांकि यह 'app.js' शुरू होगा, आप इसे हमेशा के लिए' सुडो हमेशा सूची 'या' हमेशा सूची 'के साथ चलने में सक्षम नहीं होंगे। – jczaplew
आपको एप.जेएस मजबूत से पहले शुरू करने की आवश्यकता है, तो आप चल रहे सभी नोड ऐप्स सूचीबद्ध कर सकते हैं ... –
erwin