16.04-এ প্রাচীর জিইউআই টার্মিনালগুলিতে সম্প্রচার করে না


11

শিরোনামটি এটি যোগ করে। চলমান wall <<< "TEST"কোনও টিটিওয়াইতে বার্তাটি দেখায় তবে কোনও জিইউআই টার্মিনালগুলিতে নয় (পরীক্ষিত gnome-terminalএবং এর মাধ্যমে sakura)।

আমার কাছে বেশ কয়েকটি ব্যাটারি এবং তাপমাত্রা পর্যবেক্ষণের স্ক্রিপ্ট রয়েছে যা wallকোনও বার্তা আনার উপর নির্ভর করে এবং 16.04 এ সাম্প্রতিক আপগ্রেড করার পরে আমি লক্ষ্য করেছি যে তারা জিইআইতে কাজ করা বন্ধ করে দিয়েছে।

আমি এটি নির্ধারণ করতে পারি না যে এটি কোনও বাগ বা কিছু বার্তাগুলি জিইউআইতে প্রদর্শিত হতে বাধা দিচ্ছে।

আমি কিভাবে এগিয়ে যেতে হবে?

অতিরিক্ত তথ্য:

byobuগুই টার্মিনালে চলমান দেয়াল বার্তাগুলি দেখার অনুমতি দেয়


2
সম্ভবত এর সাথে সম্পর্কিত askubuntu.com/questions/12654/... (দেখব xmessage, gxmessageঅথবা notify-send)
নিক Weinberg

6
আমি আজ এর আগে পড়েছি। হ্যাঁ, কিছুটা সম্পর্কিত, তবে বড় আপত্তিটি হ'ল) ​​যে প্রশ্নটি ১০.১০ এর, এবং প্রাচীরটি ১৪.০৪ ২-তে কাজ করছে ) প্রদত্ত সমাধানগুলি আমার পক্ষে সন্তুষ্টিজনক নয় provided notify-send শুধুমাত্র সংক্ষিপ্ত বার্তাগুলির জন্য এবং কেবল জিইউআইতে কাজ করে। wallসমস্ত টার্মিনালের জন্য একটি কমান্ড ব্যবহার করার সুবিধা রয়েছে, tty এবং গুয়ির জন্য কিছু লিখার পরিবর্তে এবং অন্য সেশনের জন্য থাকা সমস্ত সেশনের জন্য DISPLAY, সুতরাং এটি খুব ভাল বিকল্প নয়, অন্তত imho
সের্গি কলডিয়াজনি

আমি 15.010 সালে সম্প্রতি একই সমস্যা ছিল। আমি 16.04 উবুন্টু সাতে রয়েছি এবং এটি এখানে কার্যকরী বলে মনে হচ্ছে। অন্তর্নিহিত লাইব্রেরিতে সম্ভবত একটি সমস্যা আছে। সম্ভবত তাকান কি মেসেজ কমান্ডটি করে? শাটডাউন-কে 5 সমস্ত ভার্চুয়াল টার্মিনালগুলিতে কাজ করে? লেখার কাজটি কি সঠিকভাবে হয়? আমি যদি এমন কোনও মেশিন খুঁজে পাই যেখানে এটি কাজ করছে না তবে আমি উত্স কোডগুলি দেখব। আমি এটি ব্যবহারকারীর-স্পেস লাইব্রেরির সমস্যাটি অনুমান করছি।
j0h

1
@ j0h আসলে, সমস্যাটি জিনোম-টার্মিনালের কারণে। এটি লগইন রেকর্ডগুলি আপডেট করতে ব্যবহৃত হত, সুতরাং উদাহরণস্বরূপ আপনি যদি whoআগে জিনোম টার্মিনালে চালনা করেন তবে আমি আপনার সমস্ত খোলা ট্যাবগুলি দেখিয়েছি তবে আর না। ওয়াল কেবলমাত্র সেই টার্মিনাল সেশনে বার্তা প্রেরণ করে যা লগইন রেকর্ডগুলি আপডেট করে। সাথ ডিফল্টরূপে বিভিন্ন টার্মিনাল ব্যবহার করে। আমি এটি অনেক আগে খুঁজে পেয়েছি কিন্তু আসলে কোনও উত্তর পোস্ট করি নি। এই সপ্তাহে কোন এক সময় এটি করতে হবে।
সের্গেই কোলোডিয়াজনি

আমি একটি ধারণা আছে কীভাবে আপনি এই হ্যাক করতে পারে: <br>
Stancu Mihai

উত্তর:


5

জিনোম-টার্মিনাল যেভাবে কাজ করে তার কারণে wallএটি এটিকে টার্মিনাল হিসাবে নিবন্ধন করে না। আরও বিশদ ব্যাখ্যা এখানে পাওয়া যাবে । আমি ধরে নিয়েছি যে সাকুরার ক্ষেত্রেও এটি একই।

স্টানকু মিহাইয়ের উত্তরের ভিত্তিতে , আমি একটি স্ক্রিপ্ট তৈরি করেছি যা wallব্যবহারকারীর নাম এবং টাইমস্ট্যাম্প সহ ব্যানার (ব্যানারটি সরানোর জন্য -n বা --nobanner) সহ সাধারণত কাজ করার উপায়ের নকল করে। স্ক্রিপ্ট বর্তমানে কোনও ফাইল থেকে বার্তা পড়তে সমর্থন করে না।

আপনি এখানে wallএকটি উপন্যাস যুক্ত করে সাধারণ কমান্ডটি প্রতিস্থাপন করতে পারেন ~/.bashrc:

echo 'alias wall="~/your/path/to/wall.sh"' >> ~/.bashrc

ব্যবহারের উদাহরণ:

$ wall "some message"

Broadcast message from username@hostname (pts/19) (Wed Mar 29 11:07:35 2017):

some message

$ wall -h

Usage:
 wall [options] [message]

Write a message to all users.

Options:
 -n, --nobanner          do not print banner
 -h, --help              display this help and exit

দুর্দান্ত কাজ @ উদ্যানমৌ!
স্টানকু মিহাই

1

হ্যাঁ এটি সত্য যে জিনোম-টার্মিনাল এটি লগইন রেকর্ডগুলি আপডেট করে না, কারণ এটির জন্য আমি অন্য একটি সমাধান বের করার চেষ্টা করি:

  1. আসুন সমস্ত সক্রিয় সিউডো টার্মিনালগুলি সন্ধান করি
ps -ef | grep " pts/" | awk '{print $6}' | sort -u | tee terminals4message.txt

এটি আপনাকে সমস্ত ডেস্কটপ টার্মিনাল সেশনগুলি তালিকাবদ্ধ করতে সহায়তা করে।

সক্রিয় ডেস্কটপ টার্মিনাল সেশনে একটি বার্তা প্রেরণের অন্য উপায়

echo "$MESSAGE_to_send" | sudo tee /dev/pts/$terminal_number
  1. টিটি সিজন সম্পর্কে ভুলবেন না
ps -ef | grep " tty" | awk '{print $6}' | sort -u | grep -v "pts" | tee terminals4message.txt

এটি আপনাকে সমস্ত পাইটি সেশনগুলি তালিকাবদ্ধ করতে সহায়তা করে

  1. সবার কাছে বার্তা প্রেরণ করা
cat terminals4message.txt | while read TTY_TO; do echo -e "SYSTEM MESAGE: $(date) - \n MESAJ" | sudo tee /dev/$TTY_TO 1>/dev/null
  1. এখন এটি সমস্ত একসাথে রাখা যাক আপনি আপনার বর্তমান প্রাচীর অ্যাপটি প্রতিস্থাপন করতে এবং উপরের সমস্ত জিনিসগুলিকে সংহত করতে একটি দুর্দান্ত স্ক্রিপ্ট তৈরি করতে পারেন।
    এর পরে আপনি আপনার। / .Bashrc alias wall="your_wall_replacement.sh" এ যুক্ত করতে পারেন এইভাবে আপনার বর্তমান প্রাচীরটি মুছতে হবে না

দুঃখিত যদি কিছু ঠিক না থাকে, কারণ কেউ আমাকে এই বিষয়টিতে ফোকাস করতে দেয়নি ... আপনি যদি কিছু অদ্ভুত কিছু লক্ষ্য করেন তবে দয়া করে একটি মন্তব্য করুন।

10x


এটির জন্য এখানে একটি ওয়ান-লাইনার রয়েছে। আমি কাট দিয়ে বিশ্রী প্রতিস্থাপন করেছি যাতে এটিতে কেবল একধরণের উদ্ধৃতি থাকে। ps -ef | grep -e " tty" -e " pts/" | tr -s " " | cut -d " " -f 6 | sort -u | while read TTY; do echo "MESSAGE" | tee /dev/$TTY 1>/dev/null; done
সিজেএক্সডি

0

অন্যরা যেমন পরামর্শ দেয় সেখানে অনেকগুলি পদ্ধতি রয়েছে, আমি এখানে আরো একটি প্রত্যক্ষ (সহজ) পদ্ধতি খুঁজে পেয়েছি ( echo "$MESSAGE_to_send" | sudo tee /dev/pts/$terminal_number: এখানে আলোচিতদের গ্রহণ ))

echo "Your message" > /dev/pts/$terminal-no

এখানে terminal-no"tty" কমান্ডের মাধ্যমে অন্যান্য টার্মিনাল থেকে প্রাপ্ত করা যেতে পারে।

tty

/dev/pts/12

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