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


9

मान लीजिए कि मैं घर से दूर हूं, मेरे घर के कंप्यूटर पर ssh-ing। किसी भी कारण से, मुझे इसकी आवश्यकता है।

# shutdown -r +10

यह प्रत्येक मिनट के माध्यम से एक चेतावनी संदेश भेजता है wall, जो कि मेरे माता-पिता द्वारा सामान्य डेस्कटॉप उपयोग के लिए पूरी तरह से अदृश्य है।

क्या किसी भी तरह से wallसंदेश डेस्कटॉप पर पहुंच सकते हैं, कहते हैं, अधिसूचना।


1
इस पोस्ट के उत्तर में जानकारी के लिए धन्यवाद, मैं एक पायथन प्रोग्राम को एक साथ हैक कर सकता हूं जो मुझे बस जरूरत है। यह libnotify-binपैकेज पर निर्भर करता है ।
badp

जवाबों:


8

के आंतरिक wallऔर इतने अवरुद्ध और प्राचीन हैं कि वास्तव में संदेश को वहां से एक बार खींचने का कोई तरीका नहीं है।

इसके लिए एकमात्र वास्तविक विचार सामने रखा गया ( समस्या पर पहले भी कई बार चर्चा की जा चुकी है ) shutdownऔर rebootलिपियों में परिवर्तन करना है ताकि वे या तो डब के माध्यम से कुछ उपलब्ध करा सकें या (जैसा कि हम केवल एक कंप्यूटर और एक फिक्स के साथ काम कर रहे हैं) बस इसके लिए एक सूचित-संदेश भेजें।

वे कर रहे हैं सिर्फ स्क्रिप्ट तो आप सिर्फ उन्हें को हैक कर सकता है। लेकिन मुझे लगता है कि यह शायद एक कारण है जिसके लिए जोर दिया जा रहा है। उबंटू के खिलाफ एक बग जमा करें और अपने पैच जोड़ें (बस सुनिश्चित करें कि यदि कोई एक्स पर्यावरण नहीं है तो अधिसूचना भेजने की आवश्यकता के बिना वे काम कर सकते हैं)। यह इस प्रकार की प्रयोज्यता है जिसकी हमें आवश्यकता है।

मैंने पहले कभी नहीं सुना है gxmessage, लेकिन मैं उपयोग करूंगा notify-send

एक पूर्ण समाधान के लिए कई डिस्प्ले की संभावना को पूरा करने की आवश्यकता होगी (जैसे मल्टी-हेड, रिमोट उपयोगकर्ता, आदि) लेकिन शुक्र है कि मैंने उस बिट के लिए कल कुछ कोड लिखा है:

for display in `ps aux | grep -oE "/usr/bin/X\s[^ ]+" | cut -d " " -f 2`; do
    DISPLAY=$display notify-send -u critical 'Shutdown notice' 'Save all your work. THE SYSTEM IS GOING DOWN!!' -i /usr/share/pixmaps/gnome-computer.png
done

(मैं एक -displayया --displayझंडे के बजाय निर्यात का उपयोग कर रहा हूं क्योंकि मुझे नहीं पता है कि notify-sendया तो लगता है)


gxmessage एक प्राचीन ऐप है। इसके बारे में सोचना dbus और अधिसूचित-भेजना एक बेहतर विकल्प है। शायद मैं ज़िंदादिली के साथ कुछ काम कर सकूं।
तिन्हेद

हाँ, मुझे यकीन नहीं है कि सबसे अच्छा क्या है। zenityचेतावनी दी जा सकती है यदि आप बाहर निकलने से पहले चीजों को सहेजने के लिए पांव मार रहे हैं ... लेकिन notify-sendसूचनाओं को सिर्फ नजरअंदाज किया जा सकता है।
ओली

1
यह सच है कि नोटिफिकेशन-नोटिफिकेशन को नजरअंदाज किया जा सकता है लेकिन अगर कुछ (जैसे 10 मिनट) एक बार प्रदर्शित किया जाए तो वे काम कर सकते हैं!
OpenNingia

@ मैंने पाया है कि आपको इसके लिए XAUTHORITY एनवायरनमेंट वैरिएबल को सही ढंग से सेट करने की जरूरत है, हालाँकि।
badp

1
DISPLAY=$display notify-send...केवल उस आदेश के लिए प्रदर्शन का मान निर्यात करेगा; ऐसा नहीं है कि यह यहां मायने रखता है, लेकिन यह कहीं और उपयोगी है, IMHO, एक बिट क्लीनर।

2

आप मैन्युअल रूप से ज़ेनिटी का उपयोग करके एक संदेश भेज सकते हैं

zenity --warning --text "badp's about to restart the computer" --display=:0

बेशक, आप इसे एक स्क्रिप्ट में शामिल कर सकते हैं।


मैं प्रदर्शन को नहीं खोल सकता, यहां तक ​​कि
सुपरसियर के

करने में सक्षम होना चाहिए - यकीन है कि आप वहाँ ( =:0नहीं =0) में बृहदान्त्र मिल गया है
misterben

नहीं, आपको सही तरीके से सेट किए गए XAUTHORITY परिवेश चर की भी आवश्यकता होगी।
badp

1

आपको एक ऐसी पटकथा लिखने में सक्षम होना चाहिए, जो एक पेजेट को क्रिएट करती है और लिखित संदेश (लिखने या दीवार से) के लिए सुनती है और फिर एक जीयूआई आउटपुट पर फॉरवर्ड करती है।


0

AFAIK में दीवार संदेश के लिए कोई क्लाइंट नहीं है जो इन संदेशों को चित्रमय वातावरण में प्रदर्शित करता है। आप पॉपअप प्रदर्शित करने के लिए gxmessage ऐप का उपयोग कर सकते हैं लेकिन फिर आपको स्क्रिप्ट स्वयं लिखनी होगी।

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