কনসোলকিট (কমান্ড ck-list-sessions
) ব্যবহার করে এক্স প্রদর্শনের সক্রিয় ব্যবহারকারীর সন্ধান করে আপনি যদি ব্যবহারকারীর নাম নির্বিশেষে কাজ করতে চান তবে এর আর একটি সম্ভাব্য সমাধান রয়েছে । নিচের স্ক্রিপ্টটি রুট হিসাবে চালিত হয়েছে ধরে নেওয়া, এটি আপনার কম্পিউটারের বর্তমান সক্রিয় ব্যবহারকারীর কাছে একটি জেনिटी বার্তা প্রদর্শন করবে:
#!/bin/bash
ACTIVE=$(ck-list-sessions | awk -F' = ' '
function f(){if(A=="TRUE"){P=U"\t"D;gsub("'"'"'","",P);print P}}
$1=="\tunix-user"{U=$2}
$1=="\tx11-display"{D=$2}
$1=="\tactive"{A=$2}
END{f()} /^[^\t]/{f()}
')
USERID=${ACTIVE% *} # tab
USERNAME=$(getent passwd $USERID|cut -f1 -d':')
DISPLAY=${ACTIVE#* } # tab
DISPLAY="$DISPLAY" su $USERNAME -c "zenity --error --text='Something very bad has happened!'"
ছোট্ট অ্যাজ স্ক্রিপ্টটি কেবল সিকে-তালিকা-সেশনগুলি পার্স করার জন্য এবং সক্রিয় ব্যবহারকারীটির ব্যবহারকারীর নাম এবং প্রদর্শন আউটপুট করার জন্য (যদি আপনি চান ssh -X ব্যবহারকারীদের বাদ দিতে চান তবে এটি একটি স্থানীয় সংযোগের প্রয়োজন হতে পারে)।
(আমি এটি একটি ইউএসবি ড্রাইভে প্লাগ ইন চলমান ব্যাকআপ স্ক্রিপ্টে ব্যবহার করি ))