journalctl - पेजर से बाहर निकले बिना रुके


10

यदि मैं करता हूँ:

journalctl -u my-service

फिर Shift-Fपेजिंग करते समय पालन करने के लिए, मैं (interrupt to abort)पेजर से बाहर निकलने के बिना कैसे करूं ?

के साथ less, मैं आम तौर पर सिर्फ ^C, लेकिन अगर मैं जर्नलक् ट में करता हूं, तो यह पूरे पेजर से बाहर निकलता है।

जवाबों:


6

आप उस बिंदु पर उपयोग कर रहे हैंless , लेकिन ^ C इसे कैसे लागू किया गया था, इसके कारण अलग-अलग व्यवहार कर रहा है journalctllessनिम्न ध्वजों को शामिल करने के लिए जो झंडे जर्नल से गुजरते हैं:

 FRSXMK

इनमें से, मुझे लगता है कि "के" विकल्प यहां लागू होता है:

-K या --quit-on-intr एक व्यवधान वर्ण (आमतौर पर ^ C) टाइप होने पर तुरंत (स्थिति 2 के साथ) बाहर निकलने का कारण बनता है। आम तौर पर, एक बाधा चरित्र जो कुछ भी कर रहा है उसे रोकने के लिए कम करता है और अपने कमांड प्रॉम्प्ट पर वापस लौटता है। ध्यान दें कि इस विकल्प का उपयोग "F" कमांड से कमांड प्रॉम्प्ट पर लौटना असंभव बनाता है।

इसलिए, अपने वातावरण में $ SYSTEMD_LESS की स्थापना करें और "K" विकल्प को छोड़ कर समस्या को हल करना चाहिए , यह Ubuntu 16.04 पर मेरे परीक्षण पर काम नहीं किया:

 SYSTEMD_LESS="FRSXM"journalctl -u nginx

हालाँकि, आप वह व्यवहार प्राप्त कर सकते हैं जिसे आप पुष्टि करना चाहते हैं कि K ध्वज निम्नलिखित विविधताओं के व्यवहार की तुलना करके संबंधित है:

# ^C after Shift-F does not completely quit
journalctl -u nginx | less -FRSXM

# ^C after Shift-F completely quits
journalctl -u nginx | less -FRSXMK

मुझे सेटिंग करने में समान समस्या है SYSTEMD_LESS, लेकिन मैंने इस बात की पुष्टि की कि भेजे गए झंडे को बदल देता है less। आप पीआईडी ​​की खोज lessकर और कर सकते हैं hd /proc/<pid>/environ। पर्यावरण चर के लिए देखो LESS। यह वहाँ होगा लेकिन खाली (सामान्य रूप से यह FRSXMK)। आप यह _Kदेखने के लिए कम में भी टाइप कर सकते हैं कि क्या यह ध्वज सेट है। आम तौर पर यह है। यदि आप SYSTEMD_LESS=इसे पास करते हैं तो ऐसा नहीं है। मुझे लगता है कि जर्नलक्टल प्रक्रिया पेजर को संकेत दे रही है जब यह हो जाता है SIGINT, जो lessकि उस सेटिंग की परवाह किए बिना मर जाता है।

यहाँ एक हैडी प्रूफ-ऑफ-कॉन्सेप्ट है, जो दिखाता है कि आप इसके आस-पास कैसे पहुँच सकते हैं: gist.github.com/chriskuehl/9ab4c74c19f2f4cb888844171335ac44

0

मैंने भी सिर्फ इस कष्टप्रद विचित्रता का अनुभव किया।
सेटिंग करना SYSTEMD_LESSवास्तव में काम नहीं करता है क्योंकि SIGTERMजब यह ^ ^ C प्राप्त करता है तो जर्नलैक्ट पेजर को भेज देगा ।

मेरा "समाधान" इस तरह से एक बैश उपनाम का उपयोग करना था:

alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'

यह डिफ़ॉल्ट पेजर को ओवरराइड करता है और जब आप फ़ॉलो करते हैं तो बाहर नहीं निकलता है।
पर्यावरण चर SYSTEMD_COLORSरंगों का एकमात्र तरीका है और एक के बाद कम चलता रहता है SIGINT

यह मेरे डेबियन 9 इंस्टॉलेशन पर काम करता है।


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