Bagaimana saya bisa melihat proses apa yang sedang berjalan?

21

Saya menggunakan Ubuntu Server 10.10 dan saya ingin melihat proses apa yang sedang berjalan. Saya tahu bahwa PostgreSQL berjalan di komputer saya, tetapi saya tidak dapat melihatnya dengan perintah topatau ps, jadi saya berasumsi bahwa mereka tidak menunjukkan semua proses yang berjalan. Apakah ada perintah lain yang akan menunjukkan semua proses yang berjalan atau apakah ada parameter lain yang dapat saya gunakan dengan topatau psuntuk ini?

Jonas
sumber

Jawaban:

26

Dari pshalaman manual:

-e Pilih semua proses. Identik dengan -A.

Dengan demikian, ps -eakan ditampilkan semua proses. Pilihan umum untuk "beri aku segalanya" adalah ps -elyatau ps aux, yang terakhir adalah gaya BSD. Seringkali, orang-orang kemudian grepmengirimkan hasil ini untuk mencari proses, seperti dalam jawaban xenoterracide. Untuk menghindari juga melihat grepsendiri dalam output, Anda akan sering melihat sesuatu seperti:

 ps -ef | grep [f]oo

di mana foo adalah nama proses yang Anda cari.

Namun, jika Anda mencari proses tertentu, saya sarankan menggunakan pgrepperintah jika tersedia. Saya percaya ini tersedia di Server Ubuntu. Menggunakan pgrepberarti Anda menghindari kondisi balapan yang disebutkan di atas. Ini juga menyediakan beberapa fitur lain yang akan membutuhkan greptipuan yang semakin rumit untuk ditiru. Sintaksnya sederhana:

pgrep foo

di mana foo adalah proses yang Anda cari. Secara default, itu hanya akan menampilkan ID Proses (PID) dari proses, jika menemukannya. Lihat man pgrepopsi keluaran lainnya. Saya menemukan halaman berikut ini sangat membantu:

http://mywiki.wooledge.org/ProcessManagement

Steven D
sumber
Saya ingin tahu berapa persen yang digunakan orang pstanpa mengetahui benderanya. Saya auxselalu melemparkannya ; Saya tidak tahu apa yang sebenarnya dikendalikan oleh masing-masing bendera
Michael Mrozek
3

Anda mencoba ps aux | grep postgres? itu benar-benar akan muncul jika postgres berjalan. Jika tidak ... bagaimana Anda tahu postgres berjalan?

(catatan: ini adalah kesalahpahaman yang umum ps -auxtapi itu tidak benar)

xenoterracide
sumber
Terima kasih, ps auxbekerja lebih baik, itu menunjukkan sekitar 70 proses, sementara pshanya menunjukkan dua. Saya tahu PostgreSQL berjalan sejak saya melihat bahwa itu dimulai saat boot up dan dihentikan pada saat shutdown.
Jonas
@Jonas, beberapa skrip init ditulis dengan buruk. Jangan percaya mereka hanya karena mereka mengatakan sesuatu sudah dimulai dan berhenti. Hanya beberapa saran
xenoterracide
Ada juga pgrepuntuk ini, yang memiliki manfaat tidak pernah menangkap ps aux | grep postgresperintah Anda sendiri dalam daftar proses dan mengeluarkannya
Michael Mrozek