প্রসেস দেখা

প্রসেস দেখার সবচেয়ে সাদামাটা কমান্ডটি হল ps। এর সাথে ব্যবহারযোগ্য অনেক অপশন আছে(man ps দিয়ে দেখে নিতে পারেন) তবে শুধু ps দিয়েও আপনি দেখতে পারেন:

me@howtocode-pc:~$ ps
  PID TTY          TIME CMD
19394 pts/5    00:00:00 bash
19575 pts/5    00:00:00 ps

ফলাফল হিসেবে আমরা দুটো প্রসেস পেয়েছি। প্রথম প্রসেসটার প্রসেস আইডি বা PID হল 19394। TTY হল 'teletype' এর সংক্ষিপ্ত রূপ। এই প্রসেসদুটি টেলিটাইপ কন্ট্রোলিং টার্মিনাল 5 এ কাজ করছে। TTY আমাদের কাছে গুরুত্বপূর্ণ কিছু না। তারপরেই TIME। টাইম বলতে এখানে ওই প্রসেসটি প্রসেসরের কতটা সময় ব্যয় করে তাই নির্দেশ করে। আর শেষে CMD এর ঘরে থাকে কমান্ডটি।

এ বড় সাদামাটা লাগছে। তাইতো? আসুন কিছু অপশন সহ চেষ্টা করি। প্রথমে আমরা 'x' অপশনটি ব্যবহার করবো। অন্য কমান্ডের মত ps কমান্ডের অপশনগুলোর সামনে '-' বা '--' থাকে না।

me@howtocode-pc:~$ps x
  PID TTY      STAT   TIME COMMAND
 2191 ?        Sl     0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
 2193 ?        Ss     0:00 init --user
 2269 ?        Ss     0:00 ssh-agent -s
 2291 ?        Ss     0:00 dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-CNdywYjuei
 2298 ?        Ss     0:00 upstart-event-bridge
 2311 ?        S      0:00 upstart-file-bridge --daemon --user
 2313 ?        S      0:00 upstart-dbus-bridge --daemon --system --user --bus-name system
 2315 ?        S      0:00 upstart-dbus-bridge --daemon --session --user --bus-name session
 2317 ?        Ssl    0:06 /usr/bin/ibus-daemon --daemonize --xim
 2331 ?        Ssl    0:01 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
 2336 ?        Sl     0:00 /usr/lib/gvfs/gvfsd
 2341 ?        Ssl    0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately
 2342 ?        Ssl    0:00 gnome-session --session=gnome
 2352 ?        Sl     0:00 /usr/lib/ibus/ibus-dconf
 2356 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1001/gvfs -f -o big_writes
 2358 ?        Sl     0:00 /usr/lib/ibus/ibus-ui-gtk3
 2361 ?        S      0:00 /bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-addres
 2368 ?        Sl     0:02 /usr/lib/ibus/ibus-x11 --kill-daemon
 2372 ?        Sl     0:00 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
 2428 ?        S<l    0:00 /usr/bin/pulseaudio --start --log-target=syslog
 2431 ?        Sl     0:00 /usr/lib/dconf/dconf-service
 2434 ?        Sl     0:01 /usr/lib/ibus/ibus-engine-simple
 2444 ?        S      0:00 syndaemon -i 1.0 -t -K -R
 2450 ?        Sl     0:00 /usr/lib/gnome-settings-daemon/gsd-printer
 2455 ?        Sl     1:42 /usr/bin/gnome-shell
 2882 ?        Sl     0:00 /usr/lib/gnome-shell/gnome-shell-calendar-server
 2888 ?        Sl     0:00 /usr/lib/evolution/evolution-source-registry
 2892 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-metadata
 2897 ?        SLl    0:02 /usr/lib/gnome-online-accounts/goa-daemon
 2902 ?        Sl     0:00 /usr/lib/telepathy/mission-control-5
 2907 ?        Sl     0:00 /usr/lib/evolution/evolution-calendar-factory
 2912 ?        Sl     0:00 /usr/lib/gvfs/gvfs-udisks2-volume-monitor
 2928 ?        Sl     0:00 /usr/lib/gvfs/gvfs-goa-volume-monitor
 2933 ?        Sl     0:00 /usr/lib/gvfs/gvfs-mtp-volume-monitor
 2939 ?        Sl     0:00 /usr/lib/gvfs/gvfs-afc-volume-monitor
 2944 ?        Sl     0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
 2949 ?        Sl     0:02 /usr/bin/nautilus --no-default-window
 2957 ?        Sl     0:16 /usr/lib/tracker/tracker-store
 2958 ?        SNl    0:34 /usr/lib/tracker/tracker-miner-fs
 2962 ?        Sl     0:00 tilda
 2965 ?        Sl     0:08 cairo-dock
 2986 ?        Sl     0:10 yakuake
 2996 ?        Sl     0:00 /usr/lib/telepathy/telepathy-logger
 2998 ?        S      0:00 /usr/lib/x86_64-linux-gnu/gconf/gconfd-2
 3011 ?        S      0:00 gnome-pty-helper
 3012 pts/10   Ss+    0:00 /bin/bash
 3068 ?        S      0:00 python /usr/lib/x86_64-linux-gnu/cairo-dock/cairo-dock-launcher-API-daemon
 3100 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-burn --spawner :1.4 /org/gtk/gvfs/exec_spaw/0
 3133 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-trash --spawner :1.4 /org/gtk/gvfs/exec_spaw/1
 3227 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-computer --spawner :1.4 /org/gtk/gvfs/exec_spaw/2
 3238 ?        Ss     0:00 kdeinit4: kdeinit4 Running...
 3241 ?        S      0:00 kdeinit4: klauncher [kdeinit] --fd=8
 3244 ?        Sl     0:00 kdeinit4: kded4 [kdeinit]  
 3580 ?        Sl     0:01 zeitgeist-datahub
 3585 ?        Sl     0:00 /usr/bin/zeitgeist-daemon
 3646 ?        Sl     0:00 /usr/lib/x86_64-linux-gnu/zeitgeist-fts
 3653 ?        S      0:00 /bin/cat
 3657 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-http --spawner :1.4 /org/gtk/gvfs/exec_spaw/3
 3667 ?        Sl     0:00 /usr/bin/kglobalaccel
 3685 pts/12   Ss+    0:00 /usr/bin/tmux
 3690 ?        Ss     0:01 /usr/bin/tmux
 3691 pts/13   Ss     0:00 -bash
 3698 ?        Sl     0:00 /usr/bin/knotify4
 4057 ?        Sl     0:00 update-notifier
 5200 ?        Sl     0:00 /usr/lib/x86_64-linux-gnu/deja-dup/deja-dup-monitor
10038 ?        Sl     0:00 /usr/bin/kactivitymanagerd
16237 ?        Sl     0:04 okular /home/me/sherlock.pdf --icon okular -caption Okular
18203 pts/13   S+     0:05 emacs -nw 1.7.2.viewprocess.md
18808 pts/15   Ss     0:00 -bash
18837 pts/15   Sl+    0:01 cmus
19394 pts/5    Ss     0:00 /bin/bash --noediting -i
21797 pts/5    R+     0:00 ps x

আমরা লম্বা একটা লিস্ট পেয়েছি প্রসেসের। তারসাথে STAT নামের নতুন একটা ঘর যোগ হয়েছে। 'x' অপশন দিয়ে আমরা বলেছি যেকোনো কন্ট্রোলিং টার্মিনাল থেকে চালু প্রোগ্রাম দেখাতে। STAT যেটি কিনা 'state' এর সংক্ষিপ্তরূপ প্রসেসটির বর্তমান অবস্থা সম্পর্কে গুরুত্বপূর্ণ তথ্য দেয় সংক্ষিপ্ত ভাবে। আসুন এই অক্ষরগুলোর অর্থ জেনে নেয়া যাক:

নির্দেশক

অর্থ

R

Running Process। অর্থাৎ যে প্রসেস এখনো কাজ করছে প্রসেসরে বা এখন কাজ করতে প্রস্তুত।

S

Sleeping Process। যে প্রসেসটা এখন কাজ না করে অপেক্ষা করছে কিছু একটা ঘটার। সেটা যেকোনো ধরনের সংকেত হতে পারে। কোনো বাটন চাপা বা কোনো নেটওয়ার্ক প্যাকেট পাওয়া।

D

Uninterruptible Sleep। এমন স্লিপিং প্রসেস যা কোনোরকম ইনপুট বা আউটপুটের জন্য অপেক্ষা করছে এবং যাকে বন্ধ করা যায় না। যেমন ডিস্ক ড্রাইভ।

T

Stopped Process। যে প্রসেসকে বন্ধ করতে বলা হয়েছে। আমরা পরে এ নিয়ে বিস্তারিত জানবো।

Z

Zombie Process। এগুলো এমনসব চাইল্ড প্রসেস যা বন্ধ করা হয়েছে কিন্তু তার প্যারেন্ট প্রসেস এখনো তাকে মুছে ফেলেনি।

<

অতিগুরুত্বপূর্ণ প্রসেস। এমন প্রসেস যাকে প্রসেসরে বেশি সময় নিতে সুযোগ দেয়া হয়।(প্রসেসের ক্ষেত্রে niceness বলে একটি টার্ম আছে। এধরনের প্রসেসকে less nice বলা হয় কারন এরা নিজেরা বেশি সময় ব্যবহার করে এবং অন্যদের সময় কম দেয়।)

N

একটি কম গুরুত্বপূর্ণ বা nice process। গুরুত্বপূর্ণ প্রসেসগুলোর পর এরা প্রসেসরে সময় পায়।

আরো তথ্যসমৃদ্ধ প্রসেস লিস্ট আমরা দেখতে পারি এভাবে:

me@howtocode-pc:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  33832  3160 ?        Ss   11:29   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    11:29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    11:29   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   11:29   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    11:29   0:01 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    11:29   0:01 [rcuos/0]
root         9  0.0  0.0      0     0 ?        S    11:29   0:00 [rcuos/1]
root        10  0.0  0.0      0     0 ?        S    11:29   0:00 [rcuos/2]
root        11  0.0  0.0      0     0 ?        S    11:29   0:00 [rcuos/3]
root        12  0.0  0.0      0     0 ?        S    11:29   0:00 [rcu_bh]
root        13  0.0  0.0      0     0 ?        S    11:29   0:00 [rcuob/0]
root        14  0.0  0.0      0     0 ?        S    11:29   0:00 [rcuob/1]
....

আমরা পুরো লিস্টটি এখানে দিইনি। এখানে আমরা USER নামে ঘরে দেখতে পারছি কোন ইউজার এই প্রসেসটি চালু করেছে। %CPU এবং %MEM নির্দেশ করছে শতকরা কতটুকু প্রসেসর ও মেমরি প্রসেসটি খরচ করছে। VSZ ভার্চুয়াল মেমরির পরিমান দেখাচ্ছে। RSS দেখাচ্ছে Resident Set Size অর্থাৎ RAM এ কতটুকু জায়গা প্রসেসটি নিচ্ছে(এটি কিলোবাইটে প্রকাশ করা হচ্ছে।)। START দিয়ে বোঝানো হচ্ছে কখন প্রসেসটি চালু করা হয়েছে।

ডায়নামিক্যালি প্রসেস দেখা

ps কমান্ডটি আমরা যখন ব্যবহার করি ঠিক সেই মুহুর্তের প্রসেসের একটি চিত্র আমরা দেখতে পাই। আমরা যদি চাই এটা ডায়নামিক্যালি দেখতে তাহলে top কমান্ডটি ব্যবহার করতে হবে:

me@howtocode-pc:~$ top

top - 12:43:00 up  1:13,  3 users,  load average: 0.07, 0.19, 0.27
Tasks: 178 total,   2 running, 176 sleeping,   0 stopped,   0 zombie
%Cpu(s): 12.7 us,  3.0 sy,  4.6 ni, 75.2 id,  4.6 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:   3915312 total,  2698912 used,  1216400 free,   283676 buffers
KiB Swap:  2097148 total,        0 used,  2097148 free.  1458552 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND           
    8 root      20   0       0      0      0 R  6.1  0.0   0:01.50 rcuos/0           
 2455 me        20   0 1477500 168964  33464 S  6.1  4.3   2:32.69 gnome-shell       
29407 me        20   0   29404   1516   1064 R  6.1  0.0   0:00.01 top               
    1 root      20   0   33832   3160   1472 S  0.0  0.1   0:02.02 init              
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd          
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.02 ksoftirqd/0       
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H      
    7 root      20   0       0      0      0 S  0.0  0.0   0:01.64 rcu_sched         
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuos/1           
   10 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuos/2           
   11 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuos/3           
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh            
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/0           
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/1           
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/2           
   16 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/3           
   17 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0       
   18 root      rt   0       0      0      0 S  0.0  0.0   0:00.02 watchdog/0        
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper           
   20 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs         
   21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns             
   22 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback         
   23 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd       
   24 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset            
   25 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/u9:0      
   26 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd           
   27 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff           
   28 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khubd

কমান্ডটি দিলে টপ প্রোগ্রামটি চালু হবে। এর প্রথম অংশে সিস্টেম সম্পর্কিত বেশ কিছু গুরুত্বপূর্ণ তথ্য দেবে। আর দ্বিতীয় অংশে প্রসেসের লিস্ট। এটি প্রতি তিনসেকেন্ডে একবার আপডেট হয়। এবার আমরা কমান্ডটির বিভিন্ন অংশের অর্থ জেনে নিই:

সারি

অংশ

অর্থ

1

top

প্রোগ্রামের নাম।

1

12:43:00

বর্তমান সময়।

1

up 1:13

কম্পিউটার কতক্ষণ চালু আছে বা আপটাইম।

1

3 users

কতজন ইউজার লগড-ইন আছে।

1

load average:

কতগুলো প্রসেস কাজ করার জন্য প্রস্তুত। এখানে তিনটি সংখ্যা আছে প্রথমটি দিয়ে গত ৬০সেকেন্ডের লোড এভারেজ এবং পরের দুটি দিয়ে যথাক্রমে ৫মিনিট ও ১৫মিনিটের লোড এভারেজ জানায়।

2

Tasks:

এখানে বিভিন্নধরনের প্রসেসের মোট সংখ্যা দেখায়।

3

Cpu(s):

এই সারিতে প্রসেসর সম্পর্কিত বিভিন্ন গুরুত্বপূর্ণ তথ্য দেখায়।

3

12.7 us

শতকরা কতটুকু প্রসেসর কার্নেলছাড়া অন্যসব ইউজার দ্বারা ব্যবহৃত হচ্ছে।

3

3.0 sy

শতকরা কতটুকু প্রসেসর কার্নেল বা সিস্টেম ব্যবহার করছে।

3

4.6 ni

নাইস প্রসেস দ্বারা ব্যবহৃত প্রসেসরের শতকরা অংশ।

3

75.2 id

শতকরা কতটুকু প্রসেসর অলস পড়ে আছে বা ব্যবহৃত হচ্ছে না।

3

4.6 wa

শতকরা কতটুকু ইনপুট বা আউটটপুটের অপেক্ষায় আছে।

3

0.0 hi

হার্ডওয়্যার ইন্টারাপশনজনিত ব্যবহৃত প্রসেসর।

3

0.1 si

সফ্টওয়্যার ইন্টারাপশনজনিত ব্যবহৃত প্রসেসর।

3

0.0 st

হাইপারভাইজরে ব্যবহৃত সময়।

4

Mem:

ব্যবহৃত মেমরি।

5

Swap:

ব্যবহৃত সোয়াপ বা ভার্চুয়াল মেমরি।

top এর বেশ কয়েকটি কীবোর্ড কমান্ড আছে। এটি বন্ধ করতে 'q' চাপুন।

Last updated