সিস্টেমের অন্যান্য ব্যবহারকারীর কাছে বার্তা প্রেরণের জন্য কী বিজ্ঞপ্তি-প্রেরণ ব্যবহার করা সম্ভব?
সাধারণত একটি নির্দিষ্ট ব্যবহারকারীর পক্ষে, তবে সিস্টেমের প্রশস্ততা পাশাপাশি কাজ করবে।
উবুন্টু / ডেবিয়ান লিবনোটাইফাই ইনস্টল করা আছে
সিস্টেমের অন্যান্য ব্যবহারকারীর কাছে বার্তা প্রেরণের জন্য কী বিজ্ঞপ্তি-প্রেরণ ব্যবহার করা সম্ভব?
সাধারণত একটি নির্দিষ্ট ব্যবহারকারীর পক্ষে, তবে সিস্টেমের প্রশস্ততা পাশাপাশি কাজ করবে।
উবুন্টু / ডেবিয়ান লিবনোটাইফাই ইনস্টল করা আছে
উত্তর:
আপনার যদি অন্য ব্যবহারকারীর পাসওয়ার্ড থাকে তবে আপনি এটি করতে পারেন sudo -u somedude notify-send Hello
। কেউ কেউ অবশ্যই একটি এক্স-সেশন শুরু করতে হবে।
সম্পাদনা: ক্রোন সহ ব্যবহারের জন্য এই স্ক্রিপ্টটি পাওয়া গেছে:
#!/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
export DISPLAY=:0.0
export $(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -session)/environ )
TIME=$1
shift
/usr/bin/notify-send -t 36000 $1 $2
-session
?
pgrep
এক্স-সেশন ম্যানেজার, অর্থাৎ lxde- সেশন, জিনোম-সেশন ইত্যাদির পিড পাবে বলে মনে করা হচ্ছে না That এই স্ক্রিপ্টটি সর্বোত্তমভাবে একটি অশোধিত হ্যাক এবং এটি আপনার সিস্টেম সেটআপের উপর অনেক নির্ভর করে। আমি যখন উত্তর দিয়েছিলাম তখন এটি কাজ করেছিল তবে 5 বছর পরে এখন পরিবর্তন ছাড়া কাজ করে না।
আমি নিম্নলিখিত প্রকল্পটিতে হোঁচট খেয়েছি যা ব্যবহারকারীর বিজ্ঞপ্তি প্রয়োগ করে: tinynotify-send
সমস্ত সেশনে বিজ্ঞপ্তি প্রেরণের জন্য আমার অনুরূপ সরঞ্জামের প্রয়োজন ছিল। এখানে আমার সমাধান: /unix//a/230062/93227
এটি সমস্ত সেশন বাসগুলি সন্ধান / স্ক্যান করে এবং তারপরে এটি প্রতিটিটির জন্য বিজ্ঞপ্তি-প্রেরণ কার্যকর করে (একবার প্রতি বাসে)। সমস্ত আর্গুমেন্ট বাস্তব বিজ্ঞপ্তি-প্রেরণে অপরিবর্তিত পাস করা হয় passed
#!/bin/bash
/bin/grep -sozZe '^DBUS_SESSION_BUS_ADDRESS=[a-zA-Z0-9:=,/-]*$' /proc/*/environ \
| /usr/bin/php -r '
$busses = array();
array_shift($argv);
while($ln = fgets(STDIN)) {
list($f, $env) = explode("\0", $ln, 2);
if (file_exists($f)) {
$user = fileowner($f);
$busses[$user][trim($env)] = true;
}
}
foreach ($busses as $user => $user_busses) {
foreach ($user_busses as $env => $true) {
if (pcntl_fork()) {
posix_seteuid($user);
$env_array = array("DBUS_SESSION_BUS_ADDRESS" => preg_replace("/^DBUS_SESSION_BUS_ADDRESS=/", "", $env));
pcntl_exec("/usr/bin/notify-send", $argv, $env_array);
}
}
}
' -- "$@"