Я занимаюсь симуляцией с Linux, и код, над которым я сейчас работаю, работает только в предположении, что после того, как ядру будет присвоен процесс PID, этот PID останется неизменным до тех пор, пока процесс не будет завершен. , Я бы предположил, что это правда, но так как я новичок в мире Linux, я просто хочу посмотреть, есть ли какие-то особые обстоятельства, о которых я должен знать. Спасибо!
3 ответа
Ну ... в основном.
Как говорили другие авторы, любой конкретный процесс будет сохранять свой PID в течение неопределенного времени. Даже через один или несколько экземпляров exec
.
Тем не менее, программист, который хотел бы избежать этой гарантии на Unix Box, не будет никаких проблем. Он просто fork
, игнорирует сигналы HUP у дочери и затем убивает материнский процесс. Результатом будет то, что дочь продолжит работу с новым PID и создаст впечатление, что процесс изменил его PID.
Да, это гарантировано. Процесс будет иметь такой же PID, даже если его образ будет заменен другим с помощью системного вызова exec .
PID в Linux и Windows уникален для этого процесса. PID никогда не изменится.