Mysql शुरू होने के बाद ही मैं एक systemd सेवा कैसे शुरू कर सकता हूं?


15

मैं एक प्रोजेक्ट पर काम कर रहा हूं, जो एक मोनो ईमेलस्वर है। मैंने सिस्टमड में एक सेवा जोड़ने की कोशिश की है ताकि बूट के दौरान यह अपने आप शुरू हो जाए लेकिन मुझे समस्या हो रही है।

मैंने स्क्रिप्ट बनाई है और इसमें जोड़ा /lib/systemd/system/emailserver.serviceऔर फिर चला ln -s /lib/systemd/system/emailserver.service /etc/systemd/system/emailserver.service

इसके बाद मैंने इसे अंजाम systemd reload-daemonदिया systemctl start emailserver.serviceऔर फिर जब मैं दौड़ता ps -ef |grep -i emailserverहूं तो मैं देख सकता हूं कि mono EmailServer.exeदौड़ रहा है, सभी अब तक अच्छे दिख रहे हैं।

हालाँकि, जब मैं /var/log/messagesफ़ाइल में सर्वर को रिबूट करता हूं तो उसमें निम्न त्रुटि संदेश होता है

Jul 16 19:41:02 dev-server systemd[1]: emailserver.service holdoff
time over, scheduling restart. Jul 16 19:41:02 dev-server systemd[1]:
emailserver.service holdoff time over, scheduling restart. Jul 16
19:41:03 dev-server systemd[1]: emailserver.service holdoff time over,
scheduling restart. Jul 16 19:41:03 dev-server systemd[1]:
emailserver.service holdoff time over, scheduling restart. Jul 16
19:41:03 dev-server systemd[1]: emailserver.service holdoff time over,
scheduling restart. Jul 16 19:41:04 dev-server systemd[1]:
emailserver.service holdoff time over, scheduling restart. Jul 16
19:41:04 dev-server systemd[1]: emailserver.service start request
repeated too quickly, refusing to start.

मेरी emailserver.service स्क्रिप्ट में मेरे पास निम्नलिखित हैं

[Unit]
Description=Boardies Email Server Startup Script

[Service]
ExecStart=/home/bits/EmailServer/start.email
Restart=always

[Install]
WantedBy=multi-user.target

मैं OpenSuse 12.1 का उपयोग कर रहा हूं

मैं क्या गलत कर रहा हूँ, किसी भी मदद के लिए धन्यवाद जो आप प्रदान कर सकते हैं।

अद्यतन मैंने पाया है कि प्रोग्राम बूटअप पर काम करना बंद करने का क्या कारण है, लेकिन मुझे यकीन नहीं है कि मैं इस समस्या को कैसे ठीक कर सकता हूं। मेरा कार्यक्रम एक MySQL डेटाबेस पर निर्भर करता है और मुझे लगता है कि MySQL शुरू होने से पहले मेरा कार्यक्रम शुरू हो रहा है, MySQL शुरू होने के बाद मैं अपनी सेवा को कैसे लोड नहीं कर सकता।


आपको कुछ उदाहरणों पर एक नज़र डालनी चाहिए, जैसे: en.gentoo-wiki.com/wiki/Systemd या wiki.archlinux.org/index.php/Systemd/Services
उलरिच

जवाबों:


30

After=mysql.serviceअपनी सेवा फ़ाइल में जोड़ें (या इसे सही सेवा नाम में बदलें), उदाहरण के लिए:

[Unit]
Description=Boardies Email Server Startup Script
After=mysql.service

[Service]
ExecStart=/home/bits/EmailServer/start.email
Restart=always

[Install]
WantedBy=multi-user.target

कृपया ध्यान दें कि आपको अपनी सेवा फ़ाइल को / lib / systemd / प्रणाली में नहीं डालना है, यह एक उपयोगकर्ता द्वारा प्रदान की गई फ़ाइल है और आपको इसे केवल / etc / systemd / system में कॉपी करना चाहिए।

उन सभी सेवा फ़ाइलों की सूची प्राप्त करने के लिए systemctl list-unit-filesजिन्हें आप अपने डेटाबेस सेवा के लिए सही नाम का उपयोग और निर्धारित कर सकते हैं (यह शायद mysql.service या mysqld.service है)


क्या हम कई After=*.serviceऔर आदेश दे सकते हैं?
Ciasto piekarz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.