Jika kita mengetik ps -ef
maka kita mendapatkan daftar proses. Mengapa nomor PID tidak berkelanjutan?
Jika kita mengetik ps -ef
maka kita mendapatkan daftar proses. Mengapa nomor PID tidak berkelanjutan?
Jawaban:
Di Ubuntu mereka kontinu. Pada sistem operasi lain mungkin berbeda.
Kernel mengalokasikan PID dalam kisaran (RESERVED_PIDS, PID_MAX_DEFAULT). Itu melakukannya secara berurutan di setiap namespace (tugas di ruang nama yang berbeda dapat memiliki ID yang sama). Dalam hal kisaran habis, tugas pid membungkus.
( /programming/3446727/how-does-linux-determine-the-next-pid )
Pikiran meskipun ...
Beberapa topik tentang stackoverflow:
Dalam komentar adalah perintah untuk menguji tugas PID:
for i in {1..20}; do sh -c 'echo $$'; done
Biasanya PID kontinu tetapi beberapa proses akan mati hanya pada saat Anda menjalankan perintah ps -ef
.
Juga beberapa proses mungkin hanya subproses dari proses lain yang tidak ditampilkan dalam ps -ef
perintah. Untuk melihat beberapa hasil yang diperluas dan Anda dapat memeriksa PID berkelanjutan gunakanpstree
pstree -p
Output sampel:
├─teamviewerd(3468)─┬─{teamviewerd}(3474)
│ ├─{teamviewerd}(3475)
│ ├─{teamviewerd}(3476)
│ ├─{teamviewerd}(3477)
│ ├─{teamviewerd}(3478)
sementara jika Anda menjalankan ps -ef
Anda hanya melihat proses induk.
$ ps -ef | grep teamviewerd
root 3468 1 0 Jul15 ? 00:07:38 /opt/teamviewer9/tv_bin/teamviewerd -f