Saya mencari proses yang dimulai di Linux yang memiliki proses ID 0. Saya tahu initmemiliki PID 1, yang merupakan proses pertama di Linux, apakah ada proses dengan PID 0?
Ada dua tugas dengan ID proses yang dibedakan secara khusus: swapper
atau sched memiliki ID proses 0 dan bertanggung jawab untuk paging , dan sebenarnya merupakan bagian dari kernel daripada proses mode pengguna normal . ID Proses 1 biasanya merupakan proses init yang terutama bertanggung jawab untuk memulai dan mematikan sistem. Awalnya, ID proses 1 tidak secara khusus dicadangkan untuk init oleh tindakan teknis apa pun: ID proses itu hanya sebagai konsekuensi alami sebagai proses pertama yang dilakukan oleh kernel. Sistem Unix yang lebih baru biasanya memiliki komponen kernel tambahan yang terlihat sebagai 'proses', dalam hal ini PID 1 secara aktif dicadangkan untuk proses init untuk menjaga konsistensi dengan sistem yang lebih lama.
Anda dapat melihat bukti ini jika Anda melihat PID induk (PPID) dari initdan kthreadd:
kthreaddadalah daemon utas kernel. Semua kthreads diambil dari utas ini. Anda dapat melihat bukti ini jika Anda melihat proses lain menggunakan psdan melihat siapa PPID mereka:
Jadi jika PID 0 adalah swapper, lalu apa kswapd[0-9]*, yang pada sistem saya memiliki PID 52 saat ini? Tampaknya juga bertanggung jawab untuk paging.
Ruslan
1
@Ruslan - jika Anda telah mengikuti pertanyaan, silakan tanyakan di situs utama, komentar tidak dimaksudkan untuk ini. Referensi pertanyaan ini dalam pertanyaan baru Anda.
slm
baik, tetapi ketika kita membuat proses baru menggunakan proses fork child dapatkan pid 0 ?
roottraveller
@roottraveller belum tentu, apa pun PID orang tua adalah tempat garpu terjadi akan muncul.
Ada dua tugas dengan ID proses yang dibedakan secara khusus: swapper atau sched memiliki ID proses 0 dan bertanggung jawab untuk paging, dan sebenarnya merupakan bagian dari kernel daripada proses mode pengguna normal.
Jawaban:
Dari halaman wikipedia berjudul: Pengidentifikasi proses :
Anda dapat melihat bukti ini jika Anda melihat PID induk (PPID) dari
init
dankthreadd
:kthreadd
adalah daemon utas kernel. Semua kthreads diambil dari utas ini. Anda dapat melihat bukti ini jika Anda melihat proses lain menggunakanps
dan melihat siapa PPID mereka:Perhatikan mereka semua
2
.sumber
kswapd[0-9]*
, yang pada sistem saya memiliki PID 52 saat ini? Tampaknya juga bertanggung jawab untuk paging.Dari Process Identifier wiki:
sumber
Proses dengan
pid 0
adalah penjadwal,sumber