ฉันคิดว่าคุณสับสนกับเทคโนโลยีที่หลากหลายและวิธีการทำงาน ฉันไม่คาดหวังว่า daemon การแจ้งเตือนจากระบบใดระบบหนึ่งสามารถส่งข้อความผ่าน SSH การตั้งค่า$DISPLAY
เป็นวิธีที่ X11 ส่งเอาต์พุตจากแอ็พพลิเคชันไปยังอีกแอปพลิเคชันเพื่อแสดงวัตถุประสงค์ แต่notify-send
กำลังส่งข้อความจริงไปยัง daemon การแจ้งเตือน ข้อความนี้ส่งโดยใช้libnotify
ไลบรารี
สิ่งที่สกัดมา
libnotify เป็นไลบรารีที่ส่งการแจ้งเตือนเดสก์ท็อปไปยังภูตการแจ้งเตือนตามที่กำหนดไว้ในข้อมูลจำเพาะการแจ้งเตือนทางเดสก์ท็อป การแจ้งเตือนเหล่านี้สามารถใช้เพื่อแจ้งผู้ใช้เกี่ยวกับเหตุการณ์หรือแสดงข้อมูลบางรูปแบบโดยไม่ได้รับการช่วยเหลือจากผู้ใช้
ที่มา: https://developer.gnome.org/libnotify/
ตามวิธีการตรวจสอบ
วิธีหนึ่งในการเข้าร่วมnotify-send
ข้อความไปยังระบบแจ้งเตือนในระบบของคุณคือการใช้วิธีการที่อธิบายไว้ในโพสต์บล็อกนี้: การแจ้งเตือน IRC ผ่าน SSH และเลิกใช้ วิธีการนี้จะต้องได้รับการปรับแต่งตามการแจ้งเตือนแต่ละประเภทที่คุณต้องการส่งสัญญาณกลับไปที่การแจ้งเตือนในท้องถิ่นของคุณ
การแชเนลของอุโมงค์ทำให้ SSH ผิดเพี้ยนไป
สำหรับวิธีแก้ปัญหาทั่วไปที่มากกว่าlibnotify-over-ssh
อาจเป็นสิ่งที่คุณกำลังมองหา
สิ่งที่สกัดมา
นี่เป็นสคริปต์ไคลเอนต์เซิร์ฟเวอร์ perl ที่ฉันเขียนเพื่อให้เซิร์ฟเวอร์ของฉันสามารถส่งข้อความใส่ร้ายให้กับเครื่องของฉันได้ ฉันใช้สิ่งนี้เป็นหลักกับ weechat แต่มีคุณสมบัติที่จะทำให้เป็นเรื่องทั่วไปมากขึ้น เมื่อเรียกไคลเอ็นต์พร้อมกับแท็ก weechat เซิร์ฟเวอร์จะตรวจสอบชื่อของหน้าต่างที่โฟกัสอยู่ในปัจจุบัน หากเริ่มต้นด้วย weechat การแจ้งเตือนจะถูกระงับหากไม่มีการแจ้งเตือนการส่งถูกเรียก
แสดงบนเซิร์ฟเวอร์ระยะไกล
หากในอีกทางหนึ่งคุณเพียงแค่พยายามใช้notify-send
เพื่อแสดงข้อความบนเซิร์ฟเวอร์ระยะไกลที่คุณเคยใช้ssh
ในการเชื่อมต่อคุณจะต้องปฏิบัติตามคำแนะนำอย่างใดอย่างหนึ่งที่ทำในคำถาม & คำตอบนี้: การใช้การแจ้งเตือน - ส่ง กับ cron แม้ว่าคำตอบหลายข้อเสนอแนะว่าสิ่งนี้ไม่จำเป็น แต่ฉันก็ต้องทำสิ่งต่อไปนี้ตามที่คนอื่นพูดถึงในความคิดเห็นเกี่ยวกับระบบ Fedora 20 ของฉันโดยใช้ Cinnamon เป็นเดสก์ท็อปของฉันเพื่อให้สิ่งต่าง ๆ ทำงานได้
เพื่อให้notify-send
ทำงานได้ฉันต้องตั้งค่าตัวแปรนี้ด้วยค่าที่เหมาะสมจากสภาพแวดล้อมเดสก์ท็อปของระบบระยะไกล
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wzrbFpDUZQ,guid=82e5bffe1f819506faecc77a53d3ba73
ในระบบของฉันฉันสามารถใช้ไฟล์ที่เก็บรักษาไว้เพื่อวัตถุประสงค์ที่แน่นอนนี้
$ ssh me@remote
$ source ~/.dbus/session-bus/6a34f24f9c504e3f813bc094ed0b67af-0
$ notify-send "hi"
หมายเหตุ:ชื่อของไฟล์ DBUS จะเปลี่ยนจากเซสชันเป็นเซสชัน
DISPLAY=:0 notify-send 'hello'
งานได้สำหรับฉัน (ไม่ใช่สำหรับ aikeru) ลองทำก่อนขั้นตอนที่ซับซ้อนกว่านี้