Eğer ps -ef
yazarsak, süreçlerin bir listesini alırız. PID numaraları neden sürekli değil?
Eğer ps -ef
yazarsak, süreçlerin bir listesini alırız. PID numaraları neden sürekli değil?
Yanıtlar:
Ubuntu'da süreklidirler. Diğer işletim sistemlerinde farklılık gösterebilir.
Çekirdek PID'leri (RESERVED_PIDS, PID_MAX_DEFAULT) aralığında ayırır. Her ad alanında bunu sırayla yapar (farklı ad alanlarındaki görevler aynı kimliklere sahip olabilir). Aralık tükenirse, pid ataması tamamlanır.
( /programming/3446727/how-does-linux-determine-the-next-pid )
Yine de ...
Stackoverflow ile ilgili bazı konular:
Yorumlarda PID'lerin değerlendirilmesini test etmek için bir komut vardır:
for i in {1..20}; do sh -c 'echo $$'; done
Normalde PID süreklidir, ancak komutu çalıştırdığınızda bazı işlemler ölecektir ps -ef
.
Ayrıca, bazı işlemler ps -ef
komutta gösterilmeyen başka bir işlemin yalnızca bir alt süreci olabilir . Bazı genişletilmiş sonuçları görmek ve sürekli PID'yi kontrol etmek içinpstree
pstree -p
Örnek çıktı:
├─teamviewerd(3468)─┬─{teamviewerd}(3474)
│ ├─{teamviewerd}(3475)
│ ├─{teamviewerd}(3476)
│ ├─{teamviewerd}(3477)
│ ├─{teamviewerd}(3478)
Eğer çalıştırırsanız ps -ef
sadece üst süreci görürsünüz.
$ ps -ef | grep teamviewerd
root 3468 1 0 Jul15 ? 00:07:38 /opt/teamviewer9/tv_bin/teamviewerd -f