7

Я занимаюсь симуляцией с Linux, и код, над которым я сейчас работаю, работает только в предположении, что после того, как ядру будет присвоен процесс PID, этот PID останется неизменным до тех пор, пока процесс не будет завершен. , Я бы предположил, что это правда, но так как я новичок в мире Linux, я просто хочу посмотреть, есть ли какие-то особые обстоятельства, о которых я должен знать. Спасибо!

3 ответа3

11

Ну ... в основном.

Как говорили другие авторы, любой конкретный процесс будет сохранять свой PID в течение неопределенного времени. Даже через один или несколько экземпляров exec .

Тем не менее, программист, который хотел бы избежать этой гарантии на Unix Box, не будет никаких проблем. Он просто fork , игнорирует сигналы HUP у дочери и затем убивает материнский процесс. Результатом будет то, что дочь продолжит работу с новым PID и создаст впечатление, что процесс изменил его PID.

10

Да, это гарантировано. Процесс будет иметь такой же PID, даже если его образ будет заменен другим с помощью системного вызова exec .

3

PID в Linux и Windows уникален для этого процесса. PID никогда не изменится.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .