ps adalah perintah bawaan yang digunakan dalam sistem operasi Unix/Linux untuk membuat daftar proses yang sedang berjalan. Ini menampilkan snapshot statis dengan informasi tentang proses sedangkan top, htop, dan pandangan menunjukkan pembaruan berulang.
Perintah Ps hadir dengan banyak opsi untuk memanipulasi output. Ini menarik semua informasi proses dari /proc sistem file virtual.
Tutorial ini akan fokus menjelaskan cara menggunakan perintah ps beserta beberapa contoh praktisnya
Sintaks perintah ps
Sintaks dasar untuk penggunaan perintah ps adalah sebagai berikut:
$ ps [options]
'Opsi' dari perintah ps mungkin:
- Opsi UNIX - didahului dengan tanda hubung
- Opsi BSD - harus digunakan tanpa tanda hubung
- Opsi panjang GNU - didahului oleh dua tanda hubung
Ini adalah penggunaan perintah ps yang sangat mendasar. Cukup ketik 'ps' di konsol Anda untuk melihat hasilnya:
$ ps
Secara default, ini menunjukkan kepada kita empat kolom informasi.
- PID adalah ID Proses dari perintah yang sedang berjalan (CMD)
- TTY adalah tempat menjalankan perintah yang sedang berjalan
- TIME menceritakan tentang berapa banyak waktu yang digunakan oleh CPU saat menjalankan perintah
- CMD adalah perintah yang berjalan sebagai proses saat ini
Menjalankan perintah ps tanpa opsi apa pun hanyalah format perintah yang paling sederhana, ia tidak mengembalikan banyak informasi. Untuk memaksimalkan kekuatan perintah ps, mari kita jalankan dengan opsi tambahan yang akan dijelaskan lebih detail di bagian berikut.
01) Menampilkan semua proses (format UNIX)
Untuk melihat semua proses di sistem Linux Anda, Anda dapat menjalankan salah satu dari perintah berikut:
$ ps -A
atau:
$ ps -e
Selain itu, untuk membuat daftar semua proses yang berjalan, jalankan:
$ ps -r
02) Menampilkan semua proses (format BSD)
Untuk melihat semua proses di sistem Linux Anda menggunakan perintah ps dalam format BSD, Anda dapat menjalankan perintah berikut:
$ ps ax
atau
$ ps aux
Dimana:
- USER - pengguna menjalankan proses
- PID - id proses
- %CPU / %MEM - persentase CPU / RAM yang digunakan oleh proses
- VSZ - ukuran memori virtual yang ditempati oleh proses
- RSS - ukuran memori fisik yang ditempati oleh proses
- MULAI - waktu mulai
- STAT - status proses di mana:S (tidur), R (berjalan), I (tidur terputus).
- Waktu - menampilkan berapa lama waktu CPU yang diberikan oleh kernel untuk proses yang sedang berjalan.
- COMMAND - perintah yang berjalan sebagai proses saat ini
03) Menampilkan semua proses yang dijalankan oleh suatu perintah
Untuk membuat daftar semua proses yang dijalankan oleh sebuah perintah, mari gunakan sintaks berikut:
$ ps -C <command_name>
Misalnya, daftar semua proses perintah '/usr/sbin/kerneloops' dengan menjalankan:
$ ps -C kerneloops
Anda juga dapat menggunakan argumen dalam bentuk daftar yang dipisahkan kosong atau dipisahkan koma, misalnya:
$ ps -C sshd,systemd
04) Menampilkan semua proses yang dijalankan oleh pengguna
Jika Anda ingin membuat daftar proses berdasarkan pengguna yang id pengguna 1000, jalankan perintah berikut:
$ ps -u 1000
Anda juga dapat mencari proses berdasarkan nama pengguna:
$ ps -U root -u root u
-U parameter
akan memilih dengan real user ID (RUID)
. Ini memilih proses yang nama pengguna atau ID aslinya ada di daftar daftar pengguna. ID Pengguna asli mengidentifikasi pengguna yang membuat proses.
Sedangkan parameter -u paramater
akan memilih berdasarkan ID pengguna yang efektif (EUID)
05) Menampilkan proses yang dimiliki oleh grup
Untuk membuat daftar semua proses yang dimiliki oleh nama grup tertentu, mari jalankan perintah dengan -fG
pilihan. Misalnya:
$ ps -fG cas
Untuk menampilkan semua proses berdasarkan id grup, Anda dapat menjalankan perintah dengan opsi '-g'. Misalnya:
$ ps -g 1
Keluaran:
PID TTY TIME CMD
1 ? 00:00:03 systemd
06) Menampilkan proses dengan PID
Anda dapat membuat daftar semua proses dengan PID dengan menjalankan perintah ps dengan opsi '-fp'. Misalnya:
$ ps -fp 34531
Keluaran:
UID PID PPID C STIME TTY TIME CMD
cas 34531 1 0 06:16 ? 00:00:00 /lib/systemd/systemd --user
Selain itu, untuk membuat daftar semua proses berdasarkan PPID, jalankan perintah dengan opsi '--ppid':
$ ps -f --ppid 34529
Keluaran:
UID PID PPID C STIME TTY TIME CMD
cas 34609 34529 0 06:16 ? 00:00:00 sshd: cas@pts/0
07) Tampilkan proses menurut TTY
Untuk menampilkan semua proses dengan TTY, Anda dapat menjalankan perintah dengan opsi '-t'. Misalnya:
$ ps -t tty1
08) Menampilkan proses yang dimiliki oleh pengguna saat ini
Untuk membuat daftar semua proses yang dijalankan oleh pengguna saat ini, jalankan perintah dengan opsi '-x':
$ ps -x
09) Tampilkan semua proses dengan daftar format lengkap
Misalnya, mari kita jalankan perintah ps dengan -f
option, untuk menampilkan semua proses dengan format lengkap:
$ ps -af
10) Menampilkan semua proses dengan format ekstra
Selain itu, untuk melihat daftar format lengkap ekstra dari hasil, jalankan perintah ps dengan -F
pilihan. Misalnya:
$ ps -F
11) Menampilkan semua proses dalam format hierarki ASCII
Sebagai ilustrasi, dengan asumsi Anda ingin menampilkan semua proses pada sistem Linux Anda dalam format hierarki proses seni ASCII, mari jalankan:
$ ps af
Outputnya akan dalam format "hutan":
12) Menampilkan proses dalam keluaran yang diperlebar
Jika Anda ingin melebarkan output saat menjalankan perintah ps, gunakan w
pilihan:
$ ps w
Mari membuat perbandingan antara output menjalankan 'ps w' dan 'ps':
13) Menampilkan proses menurut format yang ditentukan pengguna
Anda dapat menggunakan sintaks berikut untuk melihat dalam format yang ditentukan pengguna:
Syntax:
$ ps --format column_name
$ ps -o column_name
$ ps o column_name
For example:
$ ps -e -o user,pid,cmd
14) Tampilkan utas dengan id utas
Misalnya, untuk menampilkan utas dengan kolom SPID (SPID adalah id utas), jalankan:
$ ps -aT
15) Menampilkan informasi tentang rangkaian pesan
Selain itu, Anda dapat menggunakan opsi '-L' untuk mendapatkan informasi tentang thread di sistem Linux Anda:
$ ps -aL
Output dengan kolom 'LWP' menunjukkan id thread:
Beberapa contoh lagi
01) Periksa proses mana yang menggunakan RAM paling banyak
Perintah berikut akan menampilkan sebagian besar memori menggunakan proses, %MEM
di kolom 1, PID
di kolom ke-2 dan perintah di kolom ke-3 untuk semua proses yang berjalan di sistem:
$ ps -eo pmem,pid,cmd | sort -k 1 -nr
02) Menampilkan semua utas dari id proses tertentu
Ini akan menampilkan semua utas dari pid proses tertentu.
$ ps -Lf -p 3482
03) Menunjukkan anak dari proses induk
Ini akan menampilkan semua proses anak dari suatu proses dan berguna untuk mencari tahu proses apa yang telah dikeluarkan dari proses utama ini.
$ ps -o pid,pcpu,pmem,uname,comm -C apache2
04) Menampilkan berapa lama proses telah berjalan
Perintah berikut akan menunjukkan berapa lama proses 'mysql' telah berjalan di sistem:
$ ps -e -o pid,comm,etime | grep mysql
3107 mysqld_safe 18-07:01:53
3469 mysqld 18-07:01:52
etime
:waktu yang berlalu sejak proses dimulai, dalam bentuk [[DD-]hh:]mm:ss.etime
:waktu yang berlalu sejak proses dimulai, dalam detik.
05) Dapatkan informasi keamanan
Jika kita ingin melihat siapa yang sedang login ke server Anda, kita dapat melihatnya menggunakan perintah ps:
$ ps -eo pid,user,args
Sekarang Anda dapat memetakan pid ke unit systemd masing-masing dengan perintah di bawah ini:
$ ps -e -o pid,unit,cmd
Kesimpulan
pstree (atau gunakan ps -axjf ) dan pgrep adalah perintah tambahan yang dapat membantu mendapatkan informasi tentang proses yang sedang berjalan.
Anda dapat menggunakan ps sebagai monitor real-time menggunakan perintah watch, katakanlah, kami ingin memfilter proses berdasarkan CPU dan Laporan penggunaan memori diperbarui setiap 1 detik.
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
Dalam tutorial ini, kita mempelajari banyak cara untuk menggunakan perintah ps di Linux. Untuk menjelajahi semua opsi, silakan lihat halaman manual ps. Terima kasih telah membaca dan silakan tinggalkan saran Anda di bagian komentar di bawah.