सामान्य उपयोगकर्ता सिस्टमड सेवाओं के लिए कोई लॉग क्यों नहीं है?


26

मैं बुनियादी प्रणाली के उपयोग को सीखने की कोशिश कर रहा हूं और मैं उपयोगकर्ता सेवा इकाइयों के साथ एक भ्रमित समस्या में चला गया हूं।

जब सिस्टेक्टेल के साथ साधारण सेवाएं चलाना शुरू करते हैं तो कुछ। सेवा मैं इस सेवा के लिए पूर्ण लॉग ढूंढ सकता हूं (इसमें क्या है जो मैंने इसे प्रिंट किया है / stderr, जैसा कि मैं इसे समझता हूं) sudo journalctl --unit some.service चलाकर

उदाहरण servicefile पर विचार करें chatty.service :

[Service]
ExecStart=/usr/bin/echo "test from chatty.service"

जब मैं इस सेवा फ़ाइल को ~ / .config / systemd / user / chatty.service में रखता हूं और इसे systemctl --user start chatty.service के साथ चलाता हूं, तो मैं इसके उत्पादन को जर्नल में भेजने के लिए नहीं पा सकता, न तो सादे जर्नल के साथ और न ही जर्नल के साथ - -user । मुझे केवल दोनों में निम्नलिखित आउटपुट मिलते हैं:

Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Starting chatty.service...
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Started chatty.service.

और journalctl --unit chatty.service कुछ भी वापस नहीं करता है (या - बिना या कोई फर्क नहीं पड़ता)।

जब मैं उसी सेवा फ़ाइल को / etc / systemd / system में ले जाता हूं और इसे sudo systemd start chatty.service के साथ चलाता हूं, तब मुझे निम्नलिखित आउटपुट मिलते हैं जब मैं sudo journalctl --unit chatty.service चलाता हूं :

Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service...
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started chatty.service.
Jan 15 19:28:08 qbd-x230-suse.site echo[27098]: test from chatty.service

ऐसा लगता है कि उपयोगकर्ता सेवा इकाई किसी भी तरह एकीकृत नहीं है, क्या यह अपेक्षित है, क्या मुझे कुछ याद आ रहा है या यह एक बग है?

मैं खुलेआम 13.1 x86-64 चला रहा हूं, सिस्टमड 208 (डिफ़ॉल्ट इंस्टॉल) के साथ।


आर्क लिनक्स पर समान सिस्टमड 208। आप journalctl --user --user-unit chattyसिस्टमड से संदेशों को शुरू करने / रोकने के लिए उपयोग कर सकते हैं , लेकिन इको प्रक्रिया आउटपुट नहीं करते हैं, कम से कम मेरे मामले में। आप journalctl --userकिसी अन्य फ़िल्टर के साथ प्रतिध्वनि संदेश प्राप्त कर सकते हैं या उसका उपयोग कर सकते हैं ।
lilydjwg

जवाबों:


20

--user-unitविकल्प का उपयोग करें , और आपके मामले में ...

journalctl --user-unit chatty

क्या आप लॉग आउटपुट में "chatty.service से परीक्षण" संदेश भेज रहे हैं, या केवल "चैटिंग शुरू कर रहा है ... सेवा" और "शुरू हुआ chatty.service।" संदेशों?
क्वांटमबोरडोम

हां, मैं इस प्रक्रिया से आउटपुट प्राप्त करने में सक्षम था (यानी "chatty.service से परीक्षण" संदेश)।
इलिनाई

यही कारण है कि मैं भी उम्मीद कर रहा था, लेकिन मैं इसे यहाँ नहीं देखता। क्या मैं पूछ सकता हूं कि आप किस ऑपरेटिंग सिस्टम (संस्करण के साथ) को चला रहे हैं?
क्वांटमबोरडोम

आर्क लिनक्स 3.13.7-1। systemd संस्करण 212.
elynnaie

2
मैं अब मुख्य जर्नल में आउटपुट देखता हूं। लेकिन जब मैं दौड़ने की कोशिश करता journalctl --userहूं तो मुझे मिलता है No journal files were found.और journalctl --user-unit chattyमेरे लिए काम नहीं करता है।
CMCDragonkai

6

नेक्रोपोस्टिंग, लेकिन मैंने आज उसी मुद्दे का सामना किया और हल किया। अधिकांश journalctl --user-unit chattyने शायद आपके लिए काम नहीं किया क्योंकि आप इसे रूट से चलाते हैं। हालांकि, प्रति man journalctl, --user-unitफ़िल्टर लॉग प्रविष्टियों को न केवल द्वारा _SYSTEMD_USER_UNIT=, बल्कि इसके द्वारा भी _UID=, और chattyरूट के यूआईडी के साथ कोई सेवा नहीं है , इसलिए कोई प्रविष्टियां नहीं मिली हैं।

यह संभावना है कि आपने journalctl --user-unit chattyअपने सामान्य उपयोगकर्ता से चलाने की कोशिश की है , लेकिन मिला है No journal files were found। ऐसा इसलिए होता है क्योंकि (और सभी उपयोगकर्ताओं को उनके निजी प्रति-उपयोगकर्ता पत्रिकाओं तक पहुंच दी जाती है, जिससेman journalctl भ्रमित हो सकते हैं) 2018 में मेरे डेबियन 9 जर्नल पर अभी भी डिफ़ॉल्ट रूप से स्थायी नहीं है ( Storage=autoऔर /etc/systemd/journald.conf, और /var/log/journal/मौजूद नहीं है), और गैर में लगातार मोड journaldबंटवारे लॉग का समर्थन नहीं करता है, इसलिए सभी लॉग में ही स्थान में समाप्त /run/log/journalतथ्य यह है कि बंटवारे डिफ़ॉल्ट रूप से चालू है बावजूद - देखने SplitModeमें man journald.conf। दृढ़ता को सक्षम करना इसे ठीक करता है।

टीएल; डीआर: जर्नल को फिर से लोड Storage=persistentकरने /etc/systemd/journald.confऔर पुन: लोड करने के द्वारा दृढ़ता को सक्षम करें sudo systemctl restart systemd-journald

वैकल्पिक रूप से, के साथ खोजें sudo journalctl _SYSTEMD_USER_UNIT=chatty.service

कुछ और विवरण https://lists.freedesktop.org/archives/systemd-devel/2016-October/037575.html पर हैं


2
धन्यवाद। मैं No journal files were opened due to insufficient permissions.अनुमतियाँ सेट करने के बारे में एक भ्रमित "संकेत" के साथ मिल रहा था , लेकिन मुझे अनुमतियाँ सेट करने की आवश्यकता नहीं होनी चाहिए क्योंकि मैं उपयोगकर्ता लॉग का उपयोग करने की कोशिश कर रहा हूं, सिस्टम लॉग नहीं। आपका फिक्स काम हो गया। बहुत धन्यवाद।
रॉल्फ

3

Systemd v230 तक , आपको --user-unitअपने उपयोगकर्ता की इकाई के लिए लॉग देखने के लिए कम सहज ध्वज का उपयोग करना था :

journalctl --user-unit chatty

V230 systemd के बाद से, आप अब --userऔर --unitझंडे को जोड़ सकते हैं जैसा कि आप उम्मीद करेंगे:

journalctl --user --unit chatty

--user --unitवाक्य रचना उबंटू 17.10 के बाद से समर्थित है।


2
मैं v230 पर "--user --unit" फीचर काम नहीं कर रहा हूँ ... यहाँ v232 चल रहा है, और यह फीचर काम नहीं करता है
LeGEC
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.