بررسی فرآیندهای در حال اجرا روی لینوکس با استفاده از دستورات PS

دستورات بسیاری وجود دارد که با استفاده از آن‌ها می‌توان فرآیندهای درحال اجرای بر روی سیستم لینوکس را بررسی کرد. در این مقاله شما را برخی از این دستورات آشنا می کنیم.

دستور PS یک گزارش تصویری از فرآیندهای جاری را برای ما نشان می‌دهد. دستور PS بدون هیچ گزینه‌ای خروجی زیر را نشان می‌دهد.

[root@fedora ~]# ps
PID TTY TIME CMD
۲۷۰۸ pts/1 00:00:00 bash
۲۹۵۸ pts/1 00:00:00 ps

PID: این گزینه IP فرآیند در حال اجرا است.
TTY: مکانی است که دستور در آن اجرا می‌شود.
TIME: زمانی که CPU توسط فرآیند در حال اجرا استفاده می‌شود.
CMD: دستوری است که توسط فرآیند فعلی اجرا می‌شود.

برای مشاهده همه فرآیندهای فعال بر روی سیستم از دستورات زیر استفاده کنید، دستور ps aux # جزئیات بیشتری از فرآیندها برای شما نشان می‌دهد.

# ps ax
# ps axu

با استفاده از گزینه “u” و یا “f-” مطابق با دستورات زیر می‌توانید جزئیات دقیق مربوط به هر فرآیند را مشاهده کنید.

$ ps aux
$ ps -ef -f

با اضافه کردن گزینه “u” و افزودن username در انتهای دستور می‌توانید فرآیندهای مربوط به یک کاربر را مشخص کنید.

$ ps -f -u username

برای جستجو در فرآیندها بر اساس نام و یا دستور استفاده شده “c” در دنباله دستور استفاده می‌کنیم.

$ ps -C apache2
PID TTY TIME CMD
۲۳۵۹ ? ۰۰:۰۰:۰۰ apache2
۴۵۲۴ ? ۰۰:۰۰:۰۰ apache2
۴۵۲۵ ? ۰۰:۰۰:۰۰ apache2
...

مدیران سیستم اغلب می‌خواهند فرآیندهایی که درحال مصرف بیش از اندازه از حافظه و یا CPU هستند را پیدا کنند، با استفاده از دستور زیر می‌توانید فرآیندها را بر اساس میزان مصرف CPU و یا میزان مصرف حافظه مرتب کرد. اگر بخواهیم بر اساس چند مورد جستجو را انجام دهیم با استفاده از کاما آنها را از هم جدا می‌کنیم. با استفاده از “+” و یا “- ” می‌توانیم مشخص کنیم که جستجو صعودی باشد یا نزولی.

$ ps aux --sort=-pcpu,+pmem

دستور زیر ۵ پروسه‌ای که بیشترین مصرف CPU را دارد نمایش می‌دهد:

$ ps aux --sort=-pcpu | head -5

با استفاده از دستورات زیر می‌توان فرآیندها را به صورت درختی مشاهده کرد:

# ps -ejH
# ps axjf