GNU/Linux >> Belajar Linux >  >> Linux

Pemantauan Proses di Linux

Pengantar

Pada artikel ini kita akan membahas perintah yang paling umum dengan contoh yang digunakan dalam pemantauan proses di sistem Linux seperti :

  • ps
  • atas
  • htop
  • lsof

1. ps

Seperti yang kita semua tahu Linux adalah sistem multitasking dan multi-user. Jadi, memungkinkan beberapa proses untuk beroperasi secara bersamaan tanpa mengganggu satu sama lain. Proses adalah salah satu konsep dasar penting dari OS Linux. Sebuah proses adalah sebuah instance pelaksana dari sebuah program dan melaksanakan tugas-tugas yang berbeda dalam sistem operasi.

Linux memberi kita utilitas yang disebut ps untuk melihat informasi yang terkait dengan proses pada sistem yang merupakan singkatan dari “Status Proses”. Perintah ps digunakan untuk membuat daftar proses yang sedang berjalan dan PID-nya bersama dengan beberapa informasi lain tergantung pada opsi yang berbeda. Ia membaca informasi proses dari file virtual di /proc berkas sistem. /proc berisi file virtual, inilah alasannya disebut sebagai sistem file virtual.

ps menyediakan banyak pilihan untuk memanipulasi output sesuai dengan kebutuhan kita.

Sintaks :

ps [options]

Opsi untuk Perintah ps :

1- Pemilihan proses sederhana :

Menunjukkan proses untuk shell saat ini

Hasil berisi empat kolom informasi.
Di mana,
PID – ID proses yang unik
TTY – jenis terminal tempat pengguna masuk
WAKTU – jumlah CPU dalam hitungan menit dan detik saat proses telah berjalan
CMD – nama perintah yang meluncurkan proses.

Catatan – Terkadang saat kita menjalankan ps perintah, ini menunjukkan WAKTU sebagai 00:00:00. Ini tidak lain adalah total akumulasi waktu penggunaan CPU untuk setiap proses dan 00:00:00 menunjukkan tidak ada waktu CPU yang diberikan oleh kernel sampai sekarang. Dalam contoh di atas kami menemukan bahwa, untuk bash tidak ada waktu CPU yang diberikan. Ini karena bash hanyalah proses induk untuk proses yang berbeda yang membutuhkan bash untuk eksekusinya dan bash itu sendiri tidak menggunakan waktu CPU sampai sekarang.

2. Melihat Proses :

Lihat semua proses yang berjalan gunakan salah satu opsi berikut dengan ps –

# ps -A
# ps -e
3. Melihat Proses yang tidak terkait dengan terminal :

Lihat semua proses kecuali pemimpin sesi dan proses yang tidak terkait dengan terminal.

# ps -a

Catatan – Anda mungkin berpikir bahwa apa itu pemimpin sesi? Sesi unik adalah untuk setiap grup proses. Jadi, pemimpin sesi adalah proses yang memulai proses lainnya. ID proses dari proses pertama sesi apa pun mirip dengan ID sesi.

4. Melihat semua proses kecuali pemimpin sesi :
# ps -d

5. Melihat semua proses kecuali yang memenuhi kondisi yang ditentukan (meniadakan pilihan) :
Contoh – Jika Anda hanya ingin melihat pemimpin sesi dan proses yang tidak terkait dengan terminal. Kemudian, jalankan

# ps -a -N
or
# ps -a --deselect

6. Lihat semua proses yang terkait dengan terminal ini :

# ps -T

7. Melihat semua proses yang berjalan :

# ps -r

8. Melihat semua proses yang Anda miliki : Proses yaitu EUID yang sama dengan ps yang berarti runner dari perintah ps, root dalam hal ini

# ps -x

Proses pemilihan berdasarkan daftar

Di sini kita akan membahas cara mendapatkan daftar proses tertentu dengan bantuan perintah ps. Opsi ini menerima argumen tunggal dalam bentuk daftar yang dipisahkan kosong atau dipisahkan koma. Mereka dapat digunakan beberapa kali.
Misalnya: ps -p “1 2” -p 3,4

  1. Pilih proses dengan nama perintah. Ini memilih proses yang nama eksekusinya diberikan dalam cmdlist. Mungkin ada kemungkinan Anda tidak akan mengetahui ID proses dan dengan perintah ini akan lebih mudah untuk mencari.

Sintaks : ps -C command_name

Contoh :

[root@unixcop ~]# ps -C dhclient
  PID TTY          TIME CMD
19815 ?        00:00:00 dhclient

2. Pilih berdasarkan ID grup atau nama. ID grup mengidentifikasi grup pengguna yang membuat proses.

Syntax : ps -G group_name
         ps --Group group_name

Example :
[root@unixcop ~]# ps -G root

3. Lihat berdasarkan id grup :

Syntax : ps -g group_id
              ps -group group_id

Contoh Sekarang :

# ps -g 1

4. Lihat proses dengan ID proses.

-Syntax :
ps p process_id
ps -p process_id
ps --pid process_id

Dan Contohnya:

[root@unixcop ~]#  ps p 27223
  PID TTY      STAT   TIME COMMAND
27223 ?        Ss     0:01 sshd: root@pts/2

[root@unixcop ~]#  ps -p 27223
  PID TTY          TIME CMD
27223 ?        00:00:01 sshd

[root@unixcop ~]#  ps --pid 27223
  PID TTY          TIME CMD
27223 ?        00:00:01 sshd

Anda dapat melihat beberapa proses dengan menentukan beberapa ID proses yang dipisahkan oleh kosong atau koma –
Untuk Contoh :

[root@unixcop ~]#  ps -p 1 904 27223
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:13 /usr/lib/systemd/systemd --switched-root --system --d
  904 tty1     Ssl+   1:02 /usr/bin/X -core -noreset :0 -seat seat0 -auth /var/r
27223 ?        Ss     0:01 sshd: root@pts/2

Di sini, kami menyebutkan tiga ID proses – 1, 904 dan 27223 yang dipisahkan dengan tanda kosong.

5. Pilih berdasarkan ID proses induk. Dengan menggunakan perintah ini kita dapat melihat semua proses yang dimiliki oleh proses induk kecuali proses induk.

Contoh :

[root@unixcop ~]# ps -p 766
  PID TTY          TIME CMD
  766 ?        00:00:06 NetworkManager

[root@unixcop ~]# ps --ppid 766
  PID TTY          TIME CMD
19815 ?        00:00:00 dhclient

Dalam contoh di atas ID proses 766 ditugaskan ke NetworkManager dan ini adalah proses induk untuk dhclient dengan ID proses 19815.

6. Lihat semua proses milik ID sesi mana pun.

Syntax :
ps -s session_id
ps --sid session_id

Example :
[root@unixcop ~]# ps -s 1248
  PID TTY          TIME CMD
 1248 ?        00:00:00 dbus-daemon
 1276 ?        00:00:00 dconf-service
 1302 ?        00:00:00 gvfsd
 1310 ?        00:00:00 gvfsd-fuse
 1369 ?        00:00:00 gvfs-udisks2-vo
 1400 ?        00:00:00 gvfsd-trash
 1418 ?        00:00:00 gvfs-mtp-volume
 1432 ?        00:00:00 gvfs-gphoto2-vo
 1437 ?        00:00:00 gvfs-afc-volume
 1447 ?        00:00:00 wnck-applet
 1453 ?        00:00:00 notification-ar
 1454 ?        00:00:02 clock-applet

7. Pilih berdasarkan tty. Ini memilih proses yang terkait dengan tty yang disebutkan :

The Syntax :
ps t tty
ps -t tty
ps --tty tty

Misalnya :

# ps -t pts/0

8. Pilih berdasarkan ID pengguna atau nama yang efektif.

Dan Sintaksnya adalah :
ps U nama_pengguna/ID

ps -U nama_pengguna/ID

Kontrol Format Output

Opsi ini digunakan untuk memilih informasi yang ditampilkan oleh ps. Ada beberapa opsi untuk mengontrol format output. Opsi ini dapat digabungkan dengan opsi lain seperti e, u, p, G, g dll, tergantung kebutuhan kita.

1. Gunakan -f untuk melihat daftar format lengkap.

ps -af

2. Gunakan -F untuk melihat format ekstra penuh.

ps -F

3. Untuk melihat proses menurut format yang ditentukan pengguna.

#  ps --formate column_name
#  ps -o column_name
#  ps o column_name

Contoh :

ps -aN --format cmd,pid,user,ppid

Dalam contoh ini saya ingin melihat perintah, ID proses, nama pengguna dan ID proses induk, jadi saya meneruskan argumen cmd, pid, pengguna dan ppid masing-masing.

4. Lihat dalam format kontrol pekerjaan BSD :

ps -j

5. Menampilkan format panjang BSD :

ps l

6. Tambahkan kolom data keamanan.

ps -aM

7. Lihat perintah dengan format sinyal.

[root@unixcop ~]# ps s 766

8. Menampilkan format berorientasi pengguna

ps u 1

9. Menampilkan format memori virtual

ps v 1

10. Jika Anda ingin melihat lingkungan dari perintah apa pun. Kemudian gunakan opsi **e** –

[root@unixcop ~]# ps ev 766
  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
  766 ?        Ssl    0:08     47  2441 545694 10448  1.0 /usr/sbin/NetworkManager --no-daemon LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

11. Lihat proses yang menggunakan memori tertinggi.

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem

12. mencetak pohon proses

[root@unixcop ~]# ps --forest -C sshd
  PID TTY          TIME CMD
  797 ?        00:00:00 sshd
11680 ?        00:00:03  \_ sshd
16361 ?        00:00:02  \_ sshd

13. Daftar semua utas untuk proses tertentu. Gunakan -T atau -L opsi untuk menampilkan rangkaian proses.

[root@unixcop ~]# ps -C sshd -L
  PID   LWP TTY          TIME CMD
  797   797 ?        00:00:00 sshd
11680 11680 ?        00:00:03 sshd
16361 16361 ?        00:00:02 sshd

Catatan – Untuk penjelasan isi kolom yang berbeda, lihat halaman manual.

Referensi : Halaman manual

2. atas

atas Perintah ini digunakan untuk menunjukkan proses Linux. Ini memberikan tampilan real-time dinamis dari sistem yang sedang berjalan. Biasanya, perintah ini menampilkan ringkasan informasi sistem dan daftar proses atau utas yang saat ini dikelola oleh Kernel Linux.
Segera setelah Anda menjalankan perintah ini, ia akan membuka mode perintah interaktif di mana setengah bagian atas akan berisi statistik proses dan penggunaan sumber daya. Dan bagian bawah berisi daftar proses yang sedang berjalan. Menekan q hanya akan keluar dari mode perintah.

Sintaks :

top

Ini,

  • PID: Menampilkan id proses unik tugas.
  • PR: Singkatan dari prioritas tugas.
  • SHR: Mewakili jumlah memori bersama yang digunakan oleh tugas.
  • VIRT: Total memori virtual yang digunakan oleh tugas.
  • USER: Nama pengguna pemilik tugas.
  • %CPU: Mewakili penggunaan CPU.
  • TIME+: Waktu CPU, sama dengan 'TIME', tetapi mencerminkan lebih banyak perincian hingga seperseratus detik.
  • SHR: Mewakili ukuran Memori Bersama (kb) yang digunakan oleh tugas.
  • NI: Mewakili Nilai Tugas yang Bagus. Nilai Nice negatif menyiratkan prioritas yang lebih tinggi, dan nilai Nice positif berarti prioritas yang lebih rendah.
  • %MEM: Menunjukkan penggunaan Memori tugas.

Contoh:

1) Keluar dari Perintah Atas Setelah Pengulangan Tertentu: Output teratas tetap segar sampai Anda menekan 'q'. Dengan perintah di bawah perintah atas akan secara otomatis keluar setelah 20 jumlah pengulangan.

top -n 10

2) Menampilkan Proses Pengguna Tertentu

top -u unixcop

di sini pengguna bernama unixcop

3) Sorot Proses Berjalan di Atas: Tekan ‘z‘ Opsi dalam menjalankan perintah teratas akan menampilkan proses yang berjalan dalam warna yang dapat membantu Anda mengidentifikasi proses yang sedang berjalan dengan mudah

4) Menunjukkan Jalur Proses Absolut:

Tekan ‘c‘ opsi dalam menjalankan perintah teratas, itu akan menampilkan jalur absolut menjalankan pro

5) Matikan proses yang sedang berjalan: Anda dapat mematikan proses setelah menemukan PID proses dengan menekan ‘k‘ opsi dalam menjalankan perintah atas tanpa keluar dari jendela atas seperti yang ditunjukkan di bawah ini.

6) Urutkan berdasarkan Penggunaan CPU: Tekan (Shift+P) untuk mengurutkan proses sesuai penggunaan CPU.

7) Menampilkan sintaks perintah teratas:

top -h 

8) Mode Batch : Kirim output dari atas ke file atau program lain.

top -b

9) Mode Aman : Gunakan bagian atas dalam mode Aman.

top -s

10) Baris Perintah : Perintah di bawah ini dimulai dari atas dengan status terakhir ditutup.

Top -c

11) Waktu tunda : Ini memberi tahu waktu tunda antara pembaruan layar.

top -d seconds.tenths

3. htop

htop command di sistem Linux adalah utilitas baris perintah yang memungkinkan pengguna untuk secara interaktif memantau sumber daya vital sistem atau proses server secara real time. htop adalah program yang lebih baru dibandingkan dengan top perintah, dan menawarkan banyak perbaikan atas perintah atas. htop mendukung operasi mouse, menggunakan warna dalam outputnya dan memberikan indikasi visual tentang penggunaan prosesor, memori, dan swap. htop juga mencetak baris perintah lengkap untuk proses dan memungkinkan seseorang untuk menggulir baik secara vertikal maupun horizontal untuk proses dan baris perintah masing-masing.

Sintaks:

htop [-dChusv]

Contoh:

Opsi:

  • -d –penundaan : Digunakan untuk menunjukkan penundaan antar pembaruan, dalam sepersepuluh detik.
  • -C –tanpa warna –tanpa warna :Mulai htop dalam mode monokrom.
  • -h –bantuan : Digunakan untuk menampilkan pesan bantuan dan keluar.
  • -u –user=USERNAME : Digunakan untuk hanya menampilkan proses dari pengguna tertentu.
htop -u qadry
  • -p –pid=PID, PID… : Digunakan untuk hanya menampilkan PID yang diberikan.
  • -s –sort-key KOLOM : Urutkan menurut kolom ini (gunakan bantuan –sort-key untuk daftar kolom).
  • -V –versi : Keluarkan informasi versi dan keluar.

Perintah Interaktif:

  • Panah, Halaman Atas, Halaman Bawah, Beranda, Akhir :Gulir daftar proses.
  • Ruang :Beri tag atau hapus tanda pada suatu proses.
  • U – Untag semua proses (hapus semua tag yang ditambahkan dengan tombol Spasi).
  • s – Melacak panggilan sistem proses.
  • F1 – Bantuan
  • F2 – pengaturan
  • F3 – cari
  • F4 – filtering:ketik sebagian dari baris perintah proses dan hanya proses yang namanya cocok yang akan ditampilkan.
  • F5 – Tampilan pohon.
  • F6 – Penyortiran.
  • F7 – Tingkatkan prioritas proses yang dipilih. Ini hanya dapat dilakukan oleh superuser.
  • F8 – Kurangi prioritas proses yang dipilih.
  • F9 – Proses mati.
  • F10 – Berhenti.

4. lsof

Linux/Unix menganggap semuanya sebagai file dan memelihara folder. Jadi “File atau File ” sangat penting di Linux/Unix. Saat bekerja di sistem Linux/Unix mungkin ada beberapa file dan folder yang digunakan, beberapa di antaranya akan terlihat dan beberapa tidak.
lsof perintah singkatan dari Daftar File Terbuka . Perintah ini menyediakan daftar file yang dibuka. Pada dasarnya, ini memberikan informasi untuk mengetahui file yang dibuka oleh proses mana. Dengan sekali jalan itu mencantumkan semua file yang terbuka di konsol keluaran. Itu tidak hanya dapat membuat daftar file biasa tetapi dapat membuat daftar direktori, file khusus blok, perpustakaan bersama, file khusus karakter, pipa biasa, pipa bernama, soket internet, soket domain UNIX, dan banyak lainnya. itu dapat dikombinasikan dengan perintah grep dapat digunakan untuk melakukan pencarian dan daftar lanjutan.

Sintaks:

lsof [option][user name]

Opsi dengan Contoh:

  • Mencantumkan semua file yang terbuka: Perintah ini mencantumkan semua file yang dibuka oleh proses apa pun di sistem.
lsof

Di sini, Anda mengamati ada rincian file yang dibuka. Id Proses, pengguna yang terkait dengan proses, FD (deskriptor file), ukuran file bersama-sama memberikan informasi terperinci tentang file yang dibuka oleh perintah, ID proses, pengguna, ukurannya, dll.

  • FD direpresentasikan sebagai pendeskripsi file.
  • cwd :Direktori kerja saat ini.
  • txt :File teks.
  • mem :File memori.
  • mmap :Perangkat yang dipetakan memori.
  • Mencantumkan semua file yang dibuka oleh pengguna: Ada beberapa pengguna sistem dan setiap pengguna memiliki persyaratan yang berbeda dan karenanya mereka menggunakan file dan perangkat. Untuk menemukan daftar file yang dibuka oleh pengguna tertentu, perintah ini berguna.

Sintaks:

lsof -u username

Contoh :

lsof -u qadry

Pada gambar di atas dengan perintah lsof -u qadry daftar semua file yang dibuka oleh pengguna. Bersamaan dengan itu kita bisa melihat jenis file di sini dan itu adalah:

  • DIR: Direktori
  • REG: Berkas biasa
  • CHR: File khusus karakter
  • Mencantumkan semua file yang dibuka oleh semua orang kecuali pengguna tertentu: Dengan bantuan perintah ini Anda dapat membuat daftar semua file yang dibuka oleh semua proses dan semua pengguna. Tetapi ketika kita ingin mencari daftar file yang dibuka oleh semua pengguna kecuali pengguna tertentu maka kita dapat menggunakan:

Sintaks:

lsof -u ^root

Pada gambar yang diberikan kita dapat mengamati tidak ada file yang dibuka oleh pengguna root.

  • Mencantumkan semua file yang terbuka dengan Proses tertentu: Perintah ini dapat mencantumkan semua file yang dibuka oleh proses tertentu. -c diikuti dengan nama proses dapat mengetahui semua file yang dibuka oleh proses tertentu yang diberi nama dalam perintah.
Sintaks:
lsof -c crond

Di sini, Anda dapat mengamati bahwa file dan deskripsinya dibuka oleh proses crond.

  • Mencantumkan semua file terbuka yang dibuka oleh proses tertentu: Setiap file dikaitkan dengan beberapa ID proses. Ada banyak file yang dibuka oleh proses tertentu. Dengan menggunakan lsof -p ID proses, file yang dibuka oleh proses tertentu dapat diperiksa.

Sintaks:

lsof -p process ID

Contoh :

lsof -p 2781
  • File dibuka oleh semua PID lainnya: Karena perintah gambar yang diberikan di atas mencantumkan file yang dibuka oleh ID proses tertentu. Dengan cara yang sama, Anda dapat menggunakan opsi perintah di bawah ini untuk mengetahui daftar file yang tidak dibuka oleh ID proses tertentu.
Sintaks:
lsof -p ^process ID
  • Mencantumkan ID proses induk: Ada sejumlah besar proses yang berjalan dalam suatu sistem dan mereka memiliki file yang dibuka untuk digunakan. Mungkin ada banyak proses anak dari suatu proses dan proses ini juga dapat disebut sebagai proses induk. Untuk mengetahui daftar file yang dibuka oleh proses induk digunakan perintah lsof Id dengan opsi -R .

Sintaks:

lsof -R
  • File dibuka oleh direktori: Ini mencantumkan file yang dibuka oleh direktori tertentu. Ada file serta direktori dalam suatu sistem. Jadi bisa ada beberapa file yang dibuka oleh sebuah direktori seperti halnya file biasa.

Sintaks:

lsof -D directory path
  • File dibuka oleh koneksi jaringan: Pc/sistem kami dapat terhubung melalui berbagai jaringan yang membantu dalam berbagai tujuan. Seperti yang kita ketahui bahwa di Linux semuanya adalah file, jadi kita bahkan dapat memeriksa file yang dibuka oleh beberapa koneksi jaringan di sistem.

Sintaks:

lsof -i

Contoh:

lsof -i tcp

Di sini, pada gambar, kita dapat melihat file yang dibuka oleh jaringan TCP. Dengan cara yang sama, kita dapat memeriksa UDP dll.

Catatan: Untuk mengetahui lebih detail tentang perintah lsof Anda dapat melihat halaman manual sebagai berikut:

 man lsof

Linux
  1. Perintah Linux ps

  2. Proses UNIX / Linux:C fork() Fungsi

  3. Linux:Temukan dan Bunuh Proses Zombie

  1. 30 Latihan Proses Linux Untuk Sysadmin

  2. Linux – Proses Init:Leluhur Semua Proses?

  3. UNIX / Linux:3 Cara Mengirim Sinyal ke Proses

  1. Kiat untuk atas:Memantau beban CPU di Linux

  2. Bagaimana Cara Membunuh Proses di Linux? Perintah untuk Mengakhiri

  3. Mengelola Proses Di Ubuntu Linux