будет ли использоваться тот же PID после того, как меня убьют?

будет ли использоваться тот же PID после того, как меня убьют?

У меня был файл, открытый с помощью vimредактора. Он был в sshсеансе, и поскольку я долгое время не пользовался, сеанс закрылся, и мне пришлось снова установить соединение. Я снова открыл файл с помощью vimредактора, и он сообщил мне, что:

E325: ATTENTION
Found a swap file by the name ".latest2.sh.swp"
          owned by: ramesh   dated: Sun May 11 11:54:08 2014
         file name: ~ramesh/latest2.sh
          modified: no
         user name: ramesh   host name: xxx.xxx.edu
        process ID: 1466 (still running)
While opening file "latest2.sh"

Поскольку я не особо много менял в файле, я это сделал,

kill -9 1466

Я проверил, исчез ли процесс, используя,

ps -aef | grep ramesh

иПИД 1466не было там. Теперь, когда я снова открыл файл, он выдал мне то же самое сообщение,

E325: ATTENTION
Found a swap file by the name ".latest2.sh.swp"
          owned by: ramesh   dated: Sun May 11 11:54:08 2014
         file name: ~ramesh/latest2.sh
          modified: no
         user name: ramesh   host name: xxx.xxx.edu
        process ID: 1466
While opening file "latest2.sh"

Однако процесс былне в еще работаетсостояние.

Теперь у меня есть вопрос по поводуПИДиспользование. Согласновикипедиявход,

В Unix идентификаторы процессов обычно выделяются последовательно, начиная с 0 и увеличиваясь до максимального значения, которое варьируется от системы к системе. После достижения этого предела выделение перезапускается с нуля и снова увеличивается. Однако для этого и последующих проходов любые PID, все еще назначенные процессам, пропускаются.

Теперь, предположим, что я использовал все доступные PID, будет лиПИД 1466бытьиспользовалилипропущено?

Поскольку я уже убил его, я предполагаю, что его следует использовать. Однако при второй попытке открыть файл я все еще вижуПИД 1466.

Что произойдет в этом случае?

решение1

Да, PID можно использовать повторно в любое время.

В этом выводе вы видите, что процесс, создавший этот .swpфайл, был 1466. Это не обязательно означает, что этот процесс все еще существует.
Помните, что файл статичен, он не изменяется только потому, что процесс, который его открыл, умер. Поэтому, если 1466 будет убит, файл все еще будет содержать информацию, которая говорила: «Меня редактировал PID 1466». VIM проверяет, жив ли этот процесс, и указывает его как (still running).

Как уже упоминалось, другой процесс может получить тот же самый PID. При представлении отчета как (still running)VIM на самом деле не проверяет, является ли этот PID процессом VIM.

E325: ATTENTION
Found a swap file by the name ".test.swp"
          owned by: root   dated: Sun May 11 17:04:36 2014
         file name: /tmp/test
          modified: no
         user name: root   host name: whistler
        process ID: 21824 (still running)
While opening file "test"
             dated: Sun May 11 17:04:36 2014

В данном случае PID 21824 — это запущенная мной оболочка.  

phemmer  21824  19   0  0.0  0.0 S+         00:53 bash -c [[ "$$" == 21824 ]] && echo MATCH && sleep 999999

Связанный контент