উত্তর:
আমি অনেক অনুসন্ধান এবং চেষ্টা করার পরে এই আদেশটিতে পৌঁছেছি:
for file in /proc/[0-9]*; do grep -ao 'DISPLAY=[^[:cntrl:]]*' $file/environ 2>/dev/null && grep -ao '(.*)' $file/stat; done | sed 'N;s/\n/\t/'
আউটপুট একটি নমুনা:
DISPLAY=:0 (unity-files-dae)
DISPLAY=:0 (unity-music-dae)
DISPLAY=:0 (unity-lens-vide)
DISPLAY=:0 (zeitgeist-daemo)
DISPLAY=:0 (zeitgeist-fts)
DISPLAY=:0 (zeitgeist-datah)
DISPLAY=:0 (cat)
DISPLAY=:0 (unity-scope-vid)
DISPLAY=:0 (unity-musicstor)
DISPLAY=:0 (dconf-service)
DISPLAY=:0 (gdu-notificatio)
DISPLAY=:0 (telepathy-indic)
DISPLAY=:0 (mission-control)
DISPLAY=:0 (goa-daemon)
DISPLAY=:0 (VBoxXPCOMIPCD)
DISPLAYপ্রতিটি ফাইলের জন্য গ্রেপ । এই ফাইলগুলি সত্যই প্রক্রিয়াগুলিতে চলছে তাই শব্দযুক্ত প্রতিটি ফাইলের DISPLAYঅর্থ এই প্রক্রিয়াটি এটি ব্যবহার করছে। আপনি পুরো প্রক্রিয়াটির নামটি পাবেন না কারণ আউটপুটে থাকা নামগুলি ফাইলের নাম প্রতিষ্ঠিত আয়ন হয় /procতাই কেবল প্রস্তাবিতের চেয়ে বেশি আপনি জানতে পারবেন না।
মেথাক্স স্ক্রিপ্টে একটি ছোট পরিবর্তন করে আমরা DISPLAY ভেরিয়েবলটি ব্যবহার করে প্রক্রিয়াগুলির পিআইডি পেতে পারি।
for file in /proc/[0-9]*; do grep -ao 'DISPLAY=[^[:cntrl:]]*' $file/environ 2>/dev/null && grep -ao '[0-9]* (.*)' $file/stat; done | sed 'N;s/\n/\t/' |column -t |sort -n -k2
আউটপুটটি হ'ল:
DISPLAY=:0 590 (lxsession)
DISPLAY=:0 645 (unclutter)
DISPLAY=:0 705 (gvfsd)
DISPLAY=:0 710 (gvfsd-fuse)
DISPLAY=:0 727 (openbox)
DISPLAY=:0 729 (lxpolkit)
DISPLAY=:0 732 (lxpanel)
DISPLAY=:0 734 (pcmanfm)
DISPLAY=:0 772 (menu-cached)
DISPLAY=:0 781 (gvfs-udisks2-vo)
DISPLAY=:0 791 (gvfs-gphoto2-vo)
DISPLAY=:0 795 (gvfs-mtp-volume)
DISPLAY=:0 799 (gvfs-afc-volume)
DISPLAY=:0 804 (gvfs-goa-volume)
DISPLAY=:0 816 (gvfsd-trash)
DISPLAY=:0 21053 (npm)
DISPLAY=:0 21102 (sh)
DISPLAY=:0 21103 (sh)
DISPLAY=:0 21104 (node)
DISPLAY=:0 21110 (electron)
DISPLAY=:0 21112 (electron)
DISPLAY=:0 21149 (electron)
DISPLAY=:0 21154 (electron)
DISPLAY=:0 21180 (rec)
কিছু সুন্দর নিফটি কমান্ড লাইন স্ক্রিপ্টিং আছে! আমি অন্য স্ক্রিপ্টে একটি অনুলিপি তৈরি করতে যাচ্ছি যদি আমাকে অন্য কিছু জানার জন্য এটি হ্যাক করতে হয়।
স্থানীয়ভাবে সমস্ত বর্তমান প্রক্রিয়াগুলি যা আপনি স্থানীয় মেশিনে লগইন পোস্টের পরে চালিত প্রোগ্রামগুলির সাথে সামঞ্জস্য করে তা আপনার প্রথম উন্মুক্ত পিটিএস (সিউডো-টার্মিনাল সেশন) কনসোলের মতো একই ডিসপ্লে ভেরিয়েবল বহন করবে।
উদাহরণস্বরূপ আপনি যখন আপনার প্রথম টার্মিনাল সেশনটি (জিনোম-টার্মিনাল) খোলেন এবং কারা বা ডাব্লু কমান্ডটি চালান আপনি কিছু আউটপুট লক্ষ্য করবেন:
$ who
yourusername :0 2015-06-08 14:05 (:0)
yourusername pts/0 2015-06-08 14:22 (:0)
বা কিছু লোকেরা দেখতে দেখতে এটি দেখতে পারে (তবে এটি আপনার ক্ষেত্রে নয়)
yourusername :0 2015-06-08 14:05 (:0)
yourusername pts/0 2015-06-08 14:22 (:0.0)
লাইট ডিসপ্লে ম্যানেজার ব্যবহার করে যদি ডিআইএসএল ভেরিয়েবলটি শেলগুলির লগইন সম্পাদনের জন্য পৃথকভাবে সেট করা থাকে (উদাহরণস্বরূপ: 0.0), তবে ডিআইএসআইএল-এর পরিবেশগত পরিবর্তনশীল প্রথম উন্মুক্ত পিটিএস-এর পোস্ট-লগইন ডিসপ্লে ভেরিয়েবলের মতো একই ডিসপ্লে ভেরিয়েবলটি অর্জন করতে পারে (: ০.০), তবে হোস্ট ভেরিয়েবল, লগ ইন করার পরেও (: 0) হবে।
ডিআইআইএসএল ভেরিয়েবল প্রতিধ্বনিত করে বা নীচে দেখানো হিসাবে সেট কম পাইপ চালানো:
:~$ echo $DISPLAY
অথবা
:~$ set | less
আপনি শেলগুলির লগইন কার্য সম্পাদনের জন্য আপনার সেশনগুলির বর্তমান প্রদর্শন ভেরিয়েবলটি পরীক্ষা করতে পারেন এবং এটিতে কী সেট করা আছে তাও দেখতে পারেন। সুতরাং মূলত আপনি যে প্রক্রিয়াগুলি সম্পাদন করেন তার ডিসপ্লে ভেরিয়েবলটি আপনার প্রথম উন্মুক্ত পিটিএস, লগইন পোস্টের পরে একই ডিসপ্লে ভেরিয়েবলের মতো হয়।
আপনি যে স্ক্রিপ্টটি পোস্ট করেছেন তার আউটপুট পরামর্শ দেয় যে আপনার প্রথম উন্মুক্ত pts এর ক্ষেত্রে আপনার ডিসপ্লে ম্যানেজারের লগইনের মতো একই ডিসপ্লে ভেরিয়েবলটি থাকতে পারে: 0।
এখন দ্বিতীয় উদাহরণের জন্য আউটপুটটি এরকম কিছু দেখাচ্ছে:
DISPLAY=:0.0 (gvfs-udisks2-vo)
DISPLAY=:0.0 (zeitgeist-daemo)
DISPLAY=:0.0 (zeitgeist-fts)
DISPLAY=:0.0 (zeitgeist-datah)
DISPLAY=:0.0 (gvfs-mtp-volume)
DISPLAY=:0.0 (gvfs-gphoto2-vo)
DISPLAY=:0.0 (gvfs-afc-volume)
DISPLAY=:0.0 (geyes_applet2)
DISPLAY=:0.0 (indicator-apple)
DISPLAY=:0.0 (cat)
DISPLAY=:0.0 (python)
DISPLAY=:0.0 (gvfsd-trash)
DISPLAY=:0.0 (indicator-keybo)
DISPLAY=:0.0 (gvfsd-burn)
DISPLAY=:0.0 (cat)
DISPLAY=:0.0 (cat)
DISPLAY=:0.0 (gnome-terminal)
DISPLAY=:0.0 (bash)
DISPLAY=:0.0 (bash)
DISPLAY=:0.0 (sed)
অতিরিক্ত পড়ার জন্য আপনি পিটিএমএক্সের ম্যান পেজগুলি দেখতে পারেন
$ man ptmx
এটি আপনাকে সিউডো-টার্মিনালের মাস্টার-স্লেভ সম্পর্কের জন্য কিছুটা অন্তর্দৃষ্টি দিতে পারে।
আশা করি এটা কাজে লাগবে!
এছাড়াও আপনি কোথায় এই স্ক্রিপ্ট পেয়েছেন?