Perintah ps Linux: lihat PID, proses induk, dan status proses

Perintah ps menampilkan cuplikan proses pada saat dijalankan, termasuk identitas proses, pengguna, status, dan perintahnya. Gunakan ps untuk memeriksa proses yang sedang ada dan hubungan induk-anaknya; perintah ini selesai setelah mencetak hasil, sehingga bukan pemantau yang terus memperbarui layar.

Untuk mengamati perubahan secara berkala, gunakan top atau htop. Ada pula panduan top dalam bahasa Inggris. Penjelasan opsi di bawah mengacu pada ps dari procps-ng pada Linux. Periksa ps --version dan man ps pada sistem tujuan, karena implementasi lain dapat menerima opsi dan menghasilkan kolom yang berbeda.

Sintaks dan pilihan proses

ps [OPSI]

OPSI adalah penanda untuk pilihan yang diperlukan. Bedakan opsi pemilihan proses, seperti -e dan -p, dari opsi format, seperti -f dan -o. Memilih kolom tertentu tidak dengan sendirinya memilih proses yang ingin dilihat.

Pada procps-ng, opsi Unix memakai satu tanda hubung, opsi Berkeley Software Distribution (BSD) tanpa tanda hubung, dan opsi panjang GNU memakai dua. Jangan mengubah ps aux menjadi ps -aux: bentuk kedua mencampur aturan dan dapat ditafsirkan berbeda. Bentuk opsi serta aturan pemilihannya dijelaskan dalam manual ps dari proyek procps-ng.

Lihat proses terminal dan seluruh sistem

Proses pada terminal saat ini

ps

Tanpa opsi, procps-ng biasanya memilih proses yang memiliki effective user ID (EUID, identitas pengguna efektif) yang sama dan terminal yang sama dengan pemanggil. Ini bukan daftar seluruh proses pengguna atau seluruh sistem. Proses layanan tanpa terminal dapat tidak muncul.

Proses seluruh sistem

ps -ef

-e memilih seluruh proses yang dapat terlihat dari lingkungan tersebut, sedangkan -f memilih format lengkap. Baca judul kolom: UID menunjukkan pengguna, PID adalah process ID atau nomor identitas proses, PPID adalah nomor identitas proses induk, dan CMD menunjukkan perintah. Banyaknya baris mengikuti keadaan sistem, bukan jumlah tetap dalam contoh.

Daftar proses yang terlihat tidak membuktikan bahwa layanan merespons permintaan dengan benar. Gunakan hasil ini untuk mengidentifikasi pekerjaan, lalu periksa perilaku layanan yang relevan bila tujuan Anda menyelidiki kegagalan layanan.

Pilih satu PID dan kolom yang diperlukan

ps -p 1234 -o pid,ppid,user,stat,cmd

1234 adalah PID contoh. Ganti dengan nomor yang benar-benar ingin diperiksa dari daftar sebelumnya. Hasil yang diharapkan adalah kolom PID, PPID, USER, STAT, dan CMD untuk PID tersebut jika masih ada dan terlihat. Jika tidak ada baris data, proses mungkin telah berakhir; jangan menganggap nomor contoh pasti ada pada komputer Anda.

USER pada format ini menunjukkan pengguna efektif; STAT menunjukkan status proses; CMD memuat perintah beserta argumennya bila tersedia. Berbeda dari CMD, comm meminta nama perintah tanpa daftar argumen. Lebar tampilan dapat membatasi teks yang terlihat.

Untuk membatasi ke satu PID, gunakan -p tanpa menambahkan -e. Opsi pemilihan proses pada procps-ng umumnya digabung sebagai pilihan alternatif, sehingga gabungan -e dan -p bukan penyaring agar hanya satu PID tersisa.

Baca keluaran untuk shell saat ini

Dalam shell seperti Bash, $$ diperluas menjadi PID shell. Jalankan contoh berikut dari shell interaktif untuk memeriksa PID, PPID, status, dan nama perintahnya tanpa menebak sebuah nomor.

ps -o pid,ppid,stat,comm -p $$

Berikut contoh keluaran untuk menjelaskan kolom; nomor, status, dan nama shell pada sistem Anda dapat berbeda:

    PID    PPID STAT COMMAND
   4321    4100 Ss   bash
  • 4321 adalah PID shell contoh, sedangkan 4100 adalah PPID-nya.
  • S menyatakan tidur yang dapat diinterupsi, yaitu menunggu kejadian. Itu tidak dengan sendirinya berarti proses mengalami masalah.
  • s huruf kecil adalah penanda tambahan bahwa proses merupakan pemimpin sesi. Jadi Ss memuat status utama dan penanda tambahan, bukan satu kode tunggal.
  • bash adalah nilai kolom comm pada contoh, bukan seluruh baris perintah.

Status lain yang sering ditemui mencakup R untuk berjalan atau siap dijadwalkan, D untuk tidur yang tidak dapat diinterupsi, dan Z untuk proses zombie, yaitu proses yang telah berakhir tetapi status akhirnya belum diambil oleh proses induk. Arti status dasar dan bidang PID/PPID dapat diperiksa dalam manual informasi status proses Linux. Status merupakan keadaan saat diamati; satu hasil saja tidak menjelaskan penyebab suatu proses menunggu.

Opsi utama dan pembacaan sumber daya

Opsi atau format Kegunaan
-e Memilih seluruh proses dalam cakupan yang terlihat.
-f Menampilkan format lengkap, termasuk hubungan induk dan argumen perintah.
-p PID Memilih nomor identitas proses yang disebutkan.
-o daftar_kolom Menentukan kolom dan urutannya, misalnya pid,ppid,user,stat,cmd.
aux Format BSD untuk melihat proses seluruh pengguna, termasuk proses tanpa terminal, dengan informasi pengguna dan sumber daya.

Pada keluaran procps-ng, TIME adalah waktu Central Processing Unit (CPU, prosesor) yang telah digunakan, bukan lamanya waktu sejak proses dimulai. %CPU pada ps merupakan perbandingan waktu CPU dengan umur proses, sehingga tidak boleh langsung dibaca sebagai penggunaan pada interval terakhir seperti tampilan pemantau berkala. Penjelasan bidang tersebut tersedia pada bagian format dalam manual procps-ng.

Hindari salah membaca pencarian dan PID

ps | grep nama dapat menyertakan proses grep pencarian itu sendiri. Selain itu, ps tanpa -e tidak mencari seluruh proses. Untuk mencari PID berdasarkan nama, pgrep menyediakan pemilihan yang lebih sesuai; periksa bentuk dan kriteria di manual pgrep dari procps-ng. Pencarian nama biasa berbeda dari pencarian seluruh argumen dengan -f, dan -x meminta kecocokan penuh.

Proses dapat selesai segera setelah daftar dicetak, dan PID dapat dipakai kembali. Sebelum mengirim sinyal, periksa lagi bahwa PID serta perintah masih mengacu pada pekerjaan yang dimaksud. Menemukan satu baris bukan alasan untuk langsung menghentikannya.

Jika opsi atau nama kolom ditolak, baca pesan kesalahan lalu cocokkan dengan implementasi yang terpasang. Jika baris tidak terlihat, periksa terlebih dahulu pilihan proses dan cakupan lingkungan tempat ps dijalankan. Mengulang perintah dengan pilihan yang sesuai lebih berguna daripada menyimpulkan bahwa aplikasi pasti tidak berjalan.

FAQ

Apa perbedaan ps dan top?

Ps mencetak daftar pada saat dipanggil lalu selesai. Top memperbarui tampilan secara berkala, sehingga lebih sesuai untuk mengamati perubahan. Angka sumber daya perlu dibaca menurut definisi masing-masing alat.

Mengapa hasil ps tidak sama dengan ps -ef?

Ps tanpa opsi biasanya membatasi pilihan menurut EUID dan terminal. Ps -ef memilih seluruh proses yang terlihat dan memakai format lengkap. Perbedaan baris merupakan konsekuensi pilihan yang berbeda, bukan bukti bahwa proses baru muncul setelah perintah pertama.