फ़ाइल बदलने पर मैं एक Systemd सेवा को कैसे पुनः आरंभ करूं। मुझे एक जावा सेवा मिली है जो किसी भी जार फ़ाइल में परिवर्तन होने पर पुनः लोड करना चाहता हूं।
यह मेरा सेटअप है:
srv.service
[Unit]
Description=srv 0.1: Service's description
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/srv
ExecStart=/opt/srv/bin/srv
User=root
Group=root
[Install]
WantedBy=multi-user.target
srv.path
[Path]
PathModified=/opt/srv/lib/
मैंने PathChangedएक निर्देशिका के बजाय एक फ़ाइल का उपयोग और उपयोग करने का भी प्रयास किया ।
जब मैंने उस सेवा को स्थापित किया था जिसे मैंने निष्पादित किया था: sudo systemctl daemon-reloadऔर sudo systemctl enable srv
धन्यवाद!
ऐसा लगता है कि यदि आप इसे सेवा (.path) के समान नाम देते हैं, तो पथ फ़ाइल उसी सेवा को संदर्भित करती है: freedesktop.org/software/systemd/man/systemd.path.html ... हालाँकि मुझे नहीं पता यह केवल एक सेवा शुरू होता है या तो यह और भी उसे पुन: प्रारंभ करता है, तो यह पहले से ही चल रहा है तो
—
जाम
जैसा कि मैं इसे डॉक्स से समझता हूं,
—
माइकल पोलित्स्की
srv.pathकेवल के बराबर कर सकता हूं systemclt start srv.service, इसलिए पुनरारंभ को स्वचालित करने के लिए आपको एक और सेवा की आवश्यकता होगी, जो कि आपकी सेवा को पुनरारंभ करने पर शुरू हुई थी।
आपको इसे शुरू करने की आवश्यकता है
—
माइकल डी।
systemctl start srv.path- और इसे बूट पर शुरू करने के लिएsystemctl preset srv.path
प्रासंगिक: github.com/systemd/systemd/issues/4324
—
माइकल पोलित्स्की
pathइकाइयां केवल अन्य इकाइयों को सक्रिय करने (शुरू करने) के लिए उपयोगी हैं। यहाँ आप शायद बना सकते हैंsrv-restart.pathके साथPathChanged=/opt/srv/lib/औरsrv-restart.serviceसाथExecStart=systemctl restart srv.service।