o mesmo pid será usado após ser morto?

o mesmo pid será usado após ser morto?

Eu tinha um arquivo aberto usando vimo editor. Estava em sshsessão e como fiquei muito tempo inativo a sessão foi encerrada e tive que estabelecer a conexão novamente. Abri o arquivo novamente usando vimo editor e ele me informou dizendo:

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"

Como não mudei muita coisa no arquivo, mudei,

kill -9 1466

Eu verifiquei se o processo acabou usando,

ps -aef | grep ramesh

ePID1466não estava lá. Agora, quando abri o arquivo novamente, recebi a mesma mensagem,

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"

Contudo o processo foinão ainda em execuçãoestado.

Agora, tenho uma pergunta sobre oPIDuso. ConformeWikipédiaentrada,

No Unix, os IDs dos processos são geralmente alocados sequencialmente, começando em 0 e subindo até um valor máximo que varia de sistema para sistema. Uma vez atingido esse limite, a alocação reinicia em zero e aumenta novamente. No entanto, para esta passagem e as subsequentes, quaisquer PIDs ainda atribuídos aos processos serão ignorados.

Agora, supondo que eu tenha usado todos os PIDs disponíveis, oPID1466serusadoouignorado?

Como já o matei, presumo que deva ser usado. No entanto, na minha segunda tentativa de abrir o arquivo, ainda vejo oPID1466.

O que acontecerá neste caso?

Responder1

Sim, os PIDs podem ser reutilizados a qualquer momento.

O que você está vendo nessa saída é que o processo que criou esse .swparquivo foi 1466. Isso não significa necessariamente que o processo ainda exista.
Lembre-se que o arquivo é estático, não muda só porque o processo que o abriu morreu. Portanto, se 1466 for eliminado, o arquivo ainda conterá a informação que dizia "Eu estava sendo editado pelo PID 1466". O VIM verifica se esse processo ainda está ativo e irá indicá-lo como (still running).

Conforme mencionado, é possível que outro processo obtenha exatamente o mesmo PID. Ao reportar como (still running), o VIM na verdade não verifica se esse PID é um processo 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

Neste caso, o PID 21824 é um shell que lancei.  

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

informação relacionada