Berapa nilai maksimum ID Proses?
Juga, apakah mungkin untuk mengubah ID Proses?
Di Linux, Anda dapat menemukan nilai PID maksimum untuk sistem Anda dengan ini:
$ cat /proc/sys/kernel/pid_max
Nilai ini juga dapat ditulis menggunakan file yang sama, namun nilainya hanya dapat diperpanjang hingga maksimum secara teoritis 32768 untuk sistem 32 bit atau 4194304 untuk 64 bit:
$ echo 32768 > /proc/sys/kernel/pid_max
Tampaknya menjadi praktik normatif pada sebagian besar sistem 64 bit untuk menetapkan nilai ini ke nilai yang sama seperti yang ditemukan pada sistem 32 bit, tetapi ini adalah dengan konvensi daripada persyaratan.
Dari man 5 proc
:
/proc/sys/kernel/pid_max This file (new in Linux 2.5) specifies the value at which PIDs wrap around (i.e., the value in this file is one greater than the maximum PID). The default value for this file, 32768, results in the same range of PIDs as on earlier kernels. On 32-bit platfroms, 32768 is the maximum value for pid_max. On 64-bit systems, pid_max can be set to any value up to 2^22 (PID_MAX_LIMIT, approximately 4 million).
Dan tidak, Anda tidak dapat mengubah PID dari proses yang sedang berjalan. Itu akan ditetapkan sebagai nomor urut oleh kernel pada saat proses dimulai dan itu adalah pengenal sejak saat itu. Satu-satunya hal yang dapat Anda lakukan untuk mendapatkan yang baru adalah meminta kode Anda melakukan proses baru dan menghentikan yang lama.
Jawaban lain telah dijelaskan
/proc/sys/kernel/pid_max
untuk Linux danTetapi pertanyaannya tidak menentukan sistem operasi. Jadi, inilah beberapa yang lain:
pidmax
in/etc/system
- yang default menjadi 30.000 dan yang dapat diatur di mana saja antara 266 dan 999.999. Perhatikan bahwa ini bukanmax_nprocs
, yang merupakan parameter kernel yang bisa diubah dengan fungsi yang agak berbeda.process_id_min
danprocess_id_max
menentukan kisaran ID proses yang diizinkan.sumber
Pada FreeBSD nilai PID adalah antara 0 dan 99999 menurut
intro(2)
(tautan) . Berikut kutipan dari manual:Jika Anda ingin membaca kode sumber sendiri maka
PID_MAX
didefinisikan dalamsys/sys/proc.h
(tautan) .sumber