मैं सिस्टमड सेवाओं के समूह को कैसे पुनः लोड कर सकता हूं?


12

मैं एक घटना पर सेवाओं के एक समूह को फिर से लोड करना ( पुनः आरंभ नहीं करना चाहता !) चाहता हूं ।

उदाहरण के लिए, यदि मैं अपने एसएसएल प्रमाणपत्रों को अद्यतन करता हूं, तो मैं चाहता हूं कि प्रत्येक सेवा जो उन्हें पुनः लोड ( nginxऔर postfixदिमाग में आए) का उपयोग करे। न तो मैं याद रखना चाहता हूं कि किसी दिए गए सर्वर पर कौन सी सेवाएं एसएसएल प्रमाणपत्र का उपयोग करती हैं। उन्हें कॉन्फ़िगर किए जाने पर उन्हें समूहीकृत करने के लिए पर्याप्त होना चाहिए।

दूसरी ओर, मैं .serviceपैकेज के साथ प्रदान की गई फ़ाइलों को बदलने से बचना चाहूंगा , क्योंकि अपडेट के दौरान मैन्युअल हस्तक्षेप की आवश्यकता होगी।

मैं इसे कैसे पूरा करूं?

अनुरोध पर सेवाओं के एक समूह को रोकने के लिए एक विकल्प है , लेकिन यह उन्हें एक या दो या कई बार के लिए दुर्गम बना देगा - वे तय होने तक नीचे रह सकते हैं। मैं यह बर्दाश्त नहीं कर सकता।


मुझे यकीन नहीं है कि आप किस प्रकार /opt/letsencrypt/letsencrypt-auto renew --pre-hook "service nginx stop; service postfix stop; service squid stop" --post-hook "service nginx start; service postfix start; service squid start" सेरेट्स की तैनाती करते हैं, लेकिन यहां भी सबसे अधिक स्वचालित नवीनीकरण के लिए एक पूर्व-हुक और पोस्ट-हुक भी है: सर्टिफॉगर में पोस्ट्सवे और प्रेस्वे कमांड हैं
जैकब इवांस

@JacobEvans कि मैं क्या उपयोग है! इससे पहले सर्टिफिकेट के लिए एक कॉन्फ़िगर फ़ाइल पार्सर में एक समस्या थी: यह अर्धविराम की अनुमति नहीं देता था। इसलिए आपको कमांड लाइन तर्क का उपयोग करना था, या इसे एक बार में करना था। अभी यह सब बेकार है।
sanmai

यदि आप अपने .serviceफ़ाइल संपादन को ओवरराइड करते हैं तो आप अद्यतन समस्या से बच सकते हैं। स्थापित फ़ाइल को बदलने के बजाय sudo systemctl edit foo.serviceअपने परिवर्तनों को संग्रहीत करेगा । /etc/systemd/system/foo.service.d/override.conffoo.service
क्विक्सोटिक

जवाबों:


21

/etc/systemd/system/ssl-reload.targetनिम्नलिखित सामग्री के साथ बनाएँ ।

[Unit]
Description=Services which need reloaded with SSL certs are updated.
PropagatesReloadTo=nginx postfix

फिर दूसरी फाइल बनाएं: /etc/systemd/system/ssl-reload.path

[Unit]
Description=Restart services which use SSL when the cert directory changes

[Path]
PathChanged=/path/to/your/ssl/certs/dir

[Install]
WantedBy=multi-user.target

फिर:

systemctl enable ssl-reload.path
systemctl start ssl-reload.path

इसके साथ ही कहा कि आपके एसएसएल निर्देशिका में कुछ बदलने के बाद, वांछित सेवाओं को स्वचालित रूप से पुनः लोड किया जाना चाहिए।

यदि आप स्वचालित व्यवहार नहीं चाहते हैं, तो .pathफ़ाइल का उपयोग न करें , और systemctl reload ssl-reload.targetSSL फ़ाइलों को बदलने के बाद बस मैन्युअल रूप से जारी करें।

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