ssh এর অধীনে কাজ না করে বিজ্ঞপ্তি-পাঠান


10

হয়ত এর উত্তর অন্য কোথাও দেওয়া হয়েছে, কিন্তু আমি তা দেখিনি।

আমি উবুন্টু 14.04 চালাচ্ছি। যখন আমি আমার মেশিনে এসএসএইচ করি, উদাহরণস্বরূপ:

ssh <user>@<machineip> notify-send "Hello"

আমি মেশিনে লগইন করেছি সেখানে মনিটরে কিছু দেখতে পাচ্ছি না। যদি আমি পূর্বে ভী notify-sendসঙ্গে DISPLAY=:0.0বা DISPLAY=:0কিছুই বিভিন্ন ঘটবে। আমি বর্তমান সেশনে কোনও বিজ্ঞপ্তি দেখি না।

এই কাজ পেতে কিছু কৌশল / স্যুইচ আছে?

যদি বিষয়টি পরিষ্কার না হয় তবে আমাকে পুনরাবৃত্তি করার অনুমতি দিন: কম্পিউটার এ থেকে, আমি এসএসএইচ কম্পিউটার বিতে এসএসএইচ অধিবেশনটির মধ্যে, আমি কম্পিউটার বিতে চালুর জন্য বিজ্ঞপ্তি-প্রেরণ কার্যকর করতে চাই, আমি আশা করি একটি গ্রল-টাইপ বিজ্ঞপ্তি প্রকাশিত হবে কম্পিউটার বি এর মনিটরে।


গুগলের মাধ্যমে এটি শীর্ষ ফলাফল হিসাবে DISPLAY=:0 notify-send 'hello'সন্ধানকারী অন্যান্য ব্যক্তিদের জন্য, আমার পক্ষে কাজ করেছেন (আইকারুর জন্য নয়), আরও জটিল পদক্ষেপের আগে চেষ্টা করে দেখুন।
চিহ্নিত করুন

উত্তর:


9

আমি মনে করি আপনি বিভিন্ন প্রযুক্তি এবং তারা কীভাবে কাজ করে তা বিভ্রান্ত করছেন। আমি আশা করব না যে একটি সিস্টেমের নোটিফিকেশন ডিমনটি এসএসএইচের মাধ্যমে বার্তা প্রেরণ করতে পারে। সেট করা $DISPLAYহচ্ছে X11 কীভাবে কোনও অ্যাপ্লিকেশন থেকে অন্য উদ্দেশ্যে প্রদর্শন করার উদ্দেশ্যে আউটপুট প্রেরণ করে notify-sendতবে বিজ্ঞপ্তি ডেমনে একটি প্রকৃত বার্তা প্রেরণ করা হচ্ছে। এই বার্তাটি পাঠাগারটি ব্যবহার করে প্রেরণ করা হচ্ছে libnotify

উদ্ধৃতাংশ

libnotify হ'ল একটি লাইব্রেরি যা ডেস্কটপ নোটিফিকেশন স্পেসে বর্ণিত হিসাবে একটি নোটিফিকেশন ডিমনকে ডেস্কটপ বিজ্ঞপ্তি প্রেরণ করে। এই বিজ্ঞপ্তিগুলি কোনও ইভেন্ট সম্পর্কে ব্যবহারকারীকে অবহিত করতে বা ব্যবহারকারীর পথে না এসে কিছু ফর্ম তথ্য প্রদর্শন করতে ব্যবহার করা যেতে পারে।

সূত্র: https://developer.gnome.org/libnotify/

প্রতি অ্যাপ্লিকেশন পদ্ধতির

notify-sendআপনার স্থানীয় সিস্টেমের বিজ্ঞপ্তিতে বার্তাগুলিতে যোগদানের জন্য একটি পদ্ধতি হ'ল এসএসএইচ এবং লাইবনেটাইফের মাধ্যমে আইআরসি বিজ্ঞপ্তি শিরোনাম: এই ব্লগ পোস্টের দ্বারা বর্ণিত মতামত ব্যবহার করা । এই পদ্ধতির প্রতিটি প্রকারের বিজ্ঞপ্তি অনুসারে কাস্টমাইজ করা দরকার যা আপনি আপনার স্থানীয় নোটিফায়ারে ফিরে সুড়ঙ্গ করতে চান।

টানেলিংটি এসএসএইচ-এর মাধ্যমে লিবনোটাইফাই করা

আরও সাধারণ সমাধানের libnotify-over-sshজন্য আপনি যা খুঁজছেন তা আরও বেশি হতে পারে।

উদ্ধৃতাংশ

এটি আমি লিখেছি এমন একটি ক্লায়েন্ট সার্ভার পার্ল স্ক্রিপ্ট যাতে আমার সার্ভারটি মূলত আমার স্থানীয় মেশিনে libnotify বার্তা প্রেরণ করতে পারে। আমি এটি প্রধানত ওয়েচ্যাট দিয়ে ব্যবহার করি তবে এটি আরও সাধারণ করার জন্য একটি বৈশিষ্ট্য রয়েছে। উইকেট ট্যাগ সহ ক্লায়েন্টকে কল করার সময় সার্ভারটি বর্তমান ফোকাসযুক্ত উইন্ডোর নাম পরীক্ষা করে। এটি যদি উইচ্যাট দিয়ে শুরু হয় তবে বিজ্ঞপ্তি দমন করা হয় যদি বিজ্ঞপ্তি-প্রেরণ না বলা হয়।

রিমোট সার্ভারে প্রদর্শিত হচ্ছে

যদি অন্যদিকে আপনি কেবল notify-sendএমন কোনও রিমোট সার্ভারে বার্তা প্রদর্শন করতে ব্যবহার করার চেষ্টা করছেন যা আপনি sshসংযোগ করার জন্য ব্যবহার করেছেন তবে আপনার সম্ভবত এই প্রশ্নোত্তর শিরোনামে দেওয়া পরামর্শগুলির একটি অনুসরণ করতে হবে: শিরোনাম -প্রেরণ ব্যবহার করে ক্রন সঙ্গে । যদিও বেশ কয়েকটি উত্তরের পরামর্শ দেওয়া হয়েছিল এটি অপ্রয়োজনীয়, আমার কাজগুলি করার জন্য ডেস্কটপ হিসাবে দারুচিনি ব্যবহার করে আমার ফেডোরা ২০ সিস্টেমে অন্যরা যেমন মন্তব্য করেছিলেন তাতে আমাকে নিম্নলিখিতটি করতে হয়েছিল।

পেতে 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 ফাইলের নামটি সেশন থেকে সেশনে পরিবর্তিত হবে।


হুমম .. আমি কিছু স্পষ্টতা যোগ করেছি। আমি SSH এর মাধ্যমে বার্তা প্রেরণ করতে চাই না, আমার ধারণা। আমি একটি টার্মিনাল অ্যাপ্লিকেশন হিসাবে বিজ্ঞপ্তি-প্রেরণের কথা ভাবি যা আমি হোস্ট (ক্লায়েন্ট নয়) পিসিতে ইন্টারেক্টিভভাবে চালাতে পারি। আমি মনে করি আমি বুঝতে পেরেছি - বিজ্ঞপ্তি-পাঠানো তার নিজস্ব উপায়ে হোস্ট মেশিনে প্রতি ক্লায়েন্ট - এর অর্থ কি কোনওভাবে এসএসএইচ অধিবেশন চলাকালীন এটি করা সম্ভব নয়? মনে মনে, আমি এটি এসএসএইচ ক্লায়েন্টের কাছে উপস্থিত হওয়ার চেষ্টা করছি না, কেবলমাত্র এসএসএইচ হোস্ট / সার্ভার।
আইকেরু

@ হাইকারু - notify-sendশ্রবণকারী নোটিফায়ার ডিমনকে বার্তা পাঠাতে পারেন। আপনি যখন এসএসএইচ-এর মাধ্যমে লগইন করেন তখন এই পরিবেশটি ডাব্লু / এই নোটিফায়ার যোগাযোগের জন্য প্রয়োজনীয় তথ্য রাখে না, এটি অন্তর্নিহিত সমস্যা।
slm

সুতরাং বর্তমান পরিবেশ বা এর মতো কোনও কিছুর সাথে সংযুক্ত করার কোনও উপায় আছে, এর মতো এটির প্রয়োজনীয় তথ্য রয়েছে?
আইকেরু

@ পাইকারু - যা আমি পেয়েছি তার অনেকটাই প্রমাণ করে যে সেটিংটি $DISPLAY=:0কাজ করবে, তবে এটি আমার পক্ষে কাজ করে না। আমি ডেস্কটপ হিসাবে দারুচিনি ব্যবহার করে ফেডোরা ২০-তে আছি। straceএটি ডিবাগ করতে ব্যবহার করে বোঝা যায় যে এসএসএইচ দিয়ে যাওয়ার সময় এমন একটি সংযোগ রয়েছে যা এখনও শেষ হচ্ছে না যা তদন্ত করছে।
slm

@ হাইকারু - আপডেট দেখুন।
slm

0

আইএমও, আপনি ব্যবহার করতে পারেন হতে পারে:

ssh user@host 'export DISPLAY=:0 && notify-send "test message"'

অবশ্যই এটি অনুমান করা: ": 0" হ'ল এটিই কেবল ডিজিটাল ভেরিয়েবলের আসল মূল্য, যদি বর্তমানে এটি লগইন করা হয় তবে আমি "এক্সপোর্ট" বিশেষ শব্দটি ব্যবহার করতে হবে কারণ আমরা দুটি কমান্ড প্রেরণ করছি এবং যদি আমরা রফতানি করি পরিবর্তনশীল এটি দ্বিতীয় কমান্ড "বিজ্ঞপ্তি-প্রেরণ" ব্যবহারের জন্য উপলব্ধ হবে। "&&" অক্ষরগুলি কেবল দুটি কমান্ডকে এক লাইনে আরম্ভ করার অনুমতি দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.