Materi
Setiap program yang sedang berjalan adalah proses, dan setiap proses punya nomor unik bernama PID, pemilik, serta proses induk (PPID) yang membuatnya. Tanpa opsi, ps hanya menampilkan proses milikmu di terminal yang sedang dipakai. Untuk melihat seluruh server, ada dua gaya yang sama-sama umum.
ps aux
USER PID %CPU %MEM ... TTY STAT START TIME COMMAND
root 1 0.0 0.1 ... ? Ss 07:00 0:01 /sbin/init
deni 2077 45.0 3.3 ... pts/2 R+ 09:12 2:10 python3 rekap-kasir.py
ps -ef
UID PID PPID C STIME TTY TIME CMD
deni 2077 1980 45 09:12 pts/2 00:02:10 python3 rekap-kasir.pyps aux memakai sintaks BSD tanpa tanda hubung: a dan x berarti semua proses, termasuk yang tidak terikat terminal, dan u menambah kolom pemilik, %CPU, dan %MEM. ps -ef memakai sintaks standar: -e berarti semua proses, -f format lengkap yang memuat PPID. Kolom TTY berisi tanda tanya untuk proses yang tidak punya terminal, yaitu layanan latar seperti sshd atau nginx.
pgrep mencari proses dan mencetak PID-nya saja, cocok sebagai bahan perintah lain. Tanpa opsi, pola dicocokkan dengan nama proses, yaitu nama programnya (python3), bukan nama skrip yang dijalankannya. Opsi -f mencocokkan seluruh baris perintah, sehingga nama skrip ikut dicari. Opsi -l menambah nama proses di sebelah PID, dan -u nama membatasi pada proses milik pengguna itu. Bila tidak ada yang cocok, pgrep tidak mencetak apa pun dan berakhir dengan kode keluar 1.
Kesalahan umum: mencari pgrep rekap-kasir lalu heran tidak ada hasil, padahal prosesnya ada. Nama prosesnya python3; tambahkan -f. Kesalahan kedua: mengira %CPU di ps adalah angka detik ini. Di ps, angka itu rata-rata sejak proses mulai berjalan.