मैं धक्का कर सकते हैं stdout / stderr से पिंग तो जैसे rsyslog के आदेश:
ping www.superuser.com 2>&1 | logger -p user.info
मेरे सिस्टम पर, "लाइव" आउटपुट को एक सरल के साथ देखा जा सकता है tail -f /var/log/messages। यह मेरे में इसी लाइन की वजह से वहाँ जाता है /etc/rsyslog.config:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none -/var/log/messages
हालाँकि, मेरे कस्टम प्रोग्राम के लिए वही काम नहीं करता है:
myprogram 2>&1 | logger -p user.info
मायप्रोग्राम बाइनरी कॉल के तुरंत बाद वापस नहीं आती / बाहर निकल जाती है - यह कुछ समय के लिए चलेगी - और अब हर बार और फिर संदेश (प्रिंटफ़ का उपयोग करके) कंसोल पर प्रिंट करेंगी। यह इस तरह से व्यवहार करता है अगर मैं लकड़हारा में इसके उत्पादन को पाइप नहीं करता हूं। अगर मैं गलत हूं तो मुझे सुधारें, लेकिन यह व्यवहार पिंग कमांड के समान है (कम से कम जब गंतव्य पर पहुंच जाता है)।
फिर मैं मायप्रोग्राम का आउटपुट क्यों नहीं देख रहा हूँ /var/log/messages? क्या आउटपुट किसी तरह बफ़र किया जा सकता है और यह अभी तक लकड़हारे को नहीं मिल रहा है? क्या यह rsyslog.confविन्यास रेखा के बारे में कुछ और हो सकता है ?