Eu tinha um arquivo aberto usando vim
o editor. Estava em ssh
sessã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 vim
o 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 .swp
arquivo 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