GNU/Linux >> Belajar Linux >  >> Linux

Cara Menemukan PID dan PPID dari Proses di Linux

Mengetahui PID dan PPID dari suatu proses dapat membantu jika Anda perlu mengelola atau berinteraksi dengan proses yang berjalan di sistem Anda.

Ada banyak cara untuk mendapatkan PID (Process ID) dan PPID (Parent Process ID) dari proses tertentu di Linux.

Perintah Deskripsi
pidof process_name Bekerja dengan nama proses yang tepat
pgrep process_name Mengembalikan PID dari semua kecocokan
ps -o ppid=-p PID Dapatkan PPID dari PID
$$ PID dari proses/shell saat ini
${PPID} PID induk proses saat ini

Saya akan menjelaskan perintah-perintah ini secara rinci tetapi sebelum itu rekap proses, PID dan PPID.

Dasar-dasar proses Linux

Segala sesuatu yang berjalan di sistem Anda dijalankan melalui sesuatu yang dikenal sebagai proses, dengan itu hanya menjadi contoh program yang sedang berjalan.

Semua proses yang berjalan di sistem Anda diberi pengidentifikasi. Ini dapat membantu jika Anda ingin memantau prosesnya (misalnya, seperti untuk melihat berapa banyak memori atau CPU yang digunakannya), atau mungkin jika Anda ingin mengakhirinya jika mulai macet atau bertingkah agak aneh.

Pengidentifikasi yang dilampirkan ke semua proses ini dikenal sebagai PID dan PPID.

Apa itu PID?

PID singkatan dari "proses ID". Sekali lagi, ini hanyalah pengidentifikasi yang dilampirkan ke program saat mulai berjalan, dan dapat membantu jika Anda perlu berinteraksi dengan proses dalam satu atau lain cara.

Apa itu PPID?

PPID cukup erat kaitannya dengan PID. PPID adalah singkatan dari "parent process ID", dan jika Anda belum mendapatkannya, itu hanya singkatan dari proses yang dibuat proses yang Anda periksa.

Sebagai contoh, katakanlah kita memiliki dua proses. Salah satunya bernama "spawner", dan memiliki ID proses (atau PID) 7234. Proses kedua kami, "klien email", memiliki ID proses 7456 saat kami membuatnya. Program spawner kami memulai klien email kami, sehingga klien email kami memiliki PID 7456, dan PPID 7234, karena spawner (yang memiliki PID 7234) adalah yang melahirkan klien email.

Sekarang setelah Anda memoles dasar Anda, mari kita lihat cara mendapatkan ID proses di Linux.

Mendapatkan PID dari suatu proses

Yang penting di sini adalah mengetahui nama proses yang PID-nya ingin Anda temukan.

Jika Anda mengetahui nama proses yang tepat , Anda bisa mendapatkan ID prosesnya menggunakan pidof perintah:

pidof exact_process_name

Lebih mudah diucapkan daripada dilakukan karena Anda mungkin tidak selalu tahu nama proses yang tepat. Hal yang baik di sini adalah pidof perintah bekerja dengan penyelesaian tab jadi jika Anda mengetahui beberapa huruf awal dari nama proses, Anda dapat menekan tab untuk mendapatkan saran yang cocok.

Namun, itu mungkin tidak selalu berhasil jika nama proses tidak sesuai dengan apa yang Anda pikirkan. Misalnya, proses untuk browser Edge di Linux disebut msedge . Itu tidak dimulai dengan 'tepi' dan penyelesaian tab tidak akan berfungsi jika Anda fokus pada 'tepi'.

Jadi, yang dapat Anda lakukan adalah menggunakan perintah ps di Linux untuk membuat daftar semua proses yang berjalan dari semua pengguna dan kemudian menggunakan grep pada output untuk memfilter hasilnya.

ps aux | grep -i partial_process_name

Ada perintah khusus yang menggabungkan fitur ps dan perintah grep dan tidak mengherankan disebut pgrep :

pgrep partial_or_exact_process_name

Output default hanya menampilkan PID tanpa informasi apa pun tentang prosesnya. Ini bisa merepotkan jika ada lebih dari satu ID proses yang dikembalikan untuk istilah yang Anda telusuri.

Oleh karena itu, saya sarankan menggunakan fitur daftar untuk memastikan bahwa Anda mendapatkan PID dari proses yang diinginkan.

pgrep -l partial_or_exact_process_name

Anda juga dapat menggunakan perintah atas untuk mendapatkan informasi proses tetapi tidak dapat digunakan dalam skrip.

Anda dapat menggunakan perintah pstree untuk mendapatkan PID dari semua proses yang berjalan di sistem Linux Anda:pstree -p -a

Mendapatkan PPID dari PID proses anak

Setelah Anda mengetahui PID suatu proses, Anda dapat dengan mudah menemukan PPID untuk proses tersebut.

Anda cukup menjalankan perintah berikut, menggantikan PID dengan ID proses (anak) saat ini:

ps -o ppid= -p PID

Dalam shell, perintah di atas dan ${PPID} keduanya harus mengembalikan output yang sama:

Dan itulah segalanya untuk menemukan PID dan PPID!

Memeriksa PID dan PPID dari proses yang sedang berjalan

Jika Anda menggunakan shell seperti Bash, sangat mudah untuk menemukan PID dan PPID dari proses pemanggilan (yang biasanya berupa shell).

Bash menyimpan nilai PID di bawah $$ variabel, dan PPID di bawah ${PPID} variabel:

# Prints the PID.
echo "$$"

# Prints the PPID.
echo "${PPID}"

Dengan cara ini, Anda bisa mendapatkan ID proses shell dan subkulit.

Dan itu sangat mudah! Menemukan PID dan PPID dari proses lain juga tidak terlalu sulit.

Menutup

Anda sekarang harus mengetahui semua yang Anda butuhkan untuk menemukan PID dan PPID untuk menjalankan proses di sistem Anda.

Jika Anda memerlukan bantuan untuk menyelesaikan sesuatu, atau hanya memiliki beberapa pertanyaan yang tersisa, jangan ragu untuk meninggalkannya dan hal lain di komentar di bawah.


Linux
  1. Cara memeriksa Versi OS dan Linux

  2. Cara mem-pipe hasil 'find' ke mv di Linux

  3. Bagaimana cara mendapatkan pid dari suatu proses dan mengaktifkan kill -9 di skrip Shell?

  1. Cara Menemukan dan Membunuh Proses Zombie di Linux

  2. Bagaimana cara mengubah semua utas (dan anak-anak) dari satu proses di Linux?

  3. Cara menemukan file .pid untuk proses tertentu

  1. Temukan Waktu Eksekusi Perintah Atau Proses Di Linux

  2. Bagaimana cara menemukan ID proses di Ubuntu?

  3. Bagaimana cara menghitung penggunaan CPU dari suatu proses oleh PID di Linux dari C?