Editei um arquivo de configuração do PostgreSQL:
vi /var/lib/pgsql/10/data/postgresql.conf
Eu não salvei com sucesso, então ele criou um arquivo .swp.
Toda vez que tento editar este arquivo novamente, o terminal irá parar sem nenhuma ação. Tenho que fechar o terminal.
Tentei parar o processo do PostgreSQL pelo usuário root:
sudo systemctl stop postgresql-10
Mais uma vez, o terminal ficou em silêncio. Não é possível aceitar mais nenhuma entrada.
Quando eu corro:
sudo ls -la /var/lib/pgsql/10/data/
O mesmo terminal parou.
Quando eu corro:
sudo ls -la /var/lib/pgsql/10/
Funciona.
Não sei o que aconteceu na data
pasta. Eu sei que o arquivo swp existe lá. Mas não posso sair desse caminho agora.
Quando tentei editar o arquivo postgresql.conf novamente, ele mostrou:
E325: ATTENTION
Found a swap file by the name "~/10/data/.postgresql.conf.swp"
owned by: postgres dated: Thu Feb 27 17:57:51 2020
file name: ~postgres/10/data/postgresql.conf
modified: YES
user name: postgres host name: server
process ID: 25896 (still running)
While opening file "/var/lib/pgsql/10/data/postgresql.conf"
dated: Thu Feb 27 17:57:57 2020
NEWER than swap file!
(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use ":recover" or "vim -r /var/lib/pgsql/10/data/postgresql.conf"
to recover the changes (see ":help recovery").
If you did this already, delete the swap file "/var/lib/pgsql/10/data/.postgresql.conf.swp"
to avoid this message.
Eu usei dessa maneira matou esse número de processo:
sudo kill -9 25896
Em seguida, pode listar os arquivos em /var/lib/pgsql/10/data/
caminho.
Mas quando tentei editar postgresql.conf
novamente, parou de novo!
Fecho o terminal e entro no servidor, fiz essas coisas. Eles não podem ser excluídos.
[user@server ~]$ ps aux | grep postgresql
postgres 12569 0.0 0.0 126476 1920 ? D 09:20 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 25896 0.0 0.0 126416 2156 ? D Feb27 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 26080 0.0 0.0 126320 1856 ? D Feb27 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 26542 0.0 0.0 126476 1916 ? D 13:35 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 26741 0.0 0.0 126472 1832 ? D 13:37 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
root 26924 0.0 0.0 241036 4552 ? S 13:39 0:00 sudo rm /var/lib/pgsql/10/data/postgresql.conf
root 26926 0.4 0.0 107984 640 ? D 13:39 0:00 rm /var/lib/pgsql/10/data/postgresql.conf
postgres 27027 0.0 0.0 126332 1828 ? D 13:40 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
user 27085 0.0 0.0 112684 1000 pts/14 S+ 13:40 0:00 grep --color=auto postgresql
[user@server ~]$ sudo kill -9 12569
[user@server ~]$ sudo kill -9 25896
[user@server ~]$ sudo kill -9 26080
[user@server ~]$ sudo kill -9 26542
[user@server ~]$ sudo kill -9 26741
[user@server ~]$ sudo kill -9 26924
[user@server ~]$ sudo kill -9 26926
[user@server ~]$ sudo kill -9 27027
[user@server ~]$ ps aux | grep postgresql
postgres 12569 0.0 0.0 126476 1920 ? D 09:20 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 25896 0.0 0.0 126416 2156 ? D Feb27 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 26080 0.0 0.0 126320 1856 ? D Feb27 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 26542 0.0 0.0 126476 1916 ? D 13:35 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
postgres 26741 0.0 0.0 126472 1832 ? D 13:37 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
root 26926 0.4 0.0 107984 640 ? D 13:39 0:00 rm /var/lib/pgsql/10/data/postgresql.conf
postgres 27027 0.0 0.0 126332 1828 ? D 13:40 0:00 vi /var/lib/pgsql/10/data/postgresql.conf
user 27155 0.0 0.0 112684 996 pts/14 S+ 13:41 0:00 grep --color=auto postgresql
Qual é o motivo? Como corrigi-lo?
Seu
vi
processo está em “sono ininterrupto” (stateD
), é por isso que você não pode matá-lo.Isso geralmente é um sinal de que o sistema de E/S tem um problema, por exemplo, uma montagem NFS rígida com problemas de rede.
Não há nada que você possa fazer, exceto corrigir o problema subjacente. Você pode reinicializar a máquina, mas se for uma montagem NFS difícil e em primeiro plano, a inicialização ficará travada quando os sistemas de arquivos forem montados.
Usar NFS com PostgreSQL é considerado perigoso por muitas pessoas por causa de fraquezas na implementação do NFS do Linux.