A execução de 'build-locale-archive' faz com que minha sessão ssh termine

3

Eu já havia feito a pergunta anteriormente, Como Eu reduzo o tamanho do arquivo de localidade? e obtenho uma ótima resposta para a minha pergunta, mas quando executo build-locale-archive , eu me desconecto do host do RHEL6. Como posso evitar isso?

Atualização:

Eu decidi correr ...

# strace -f -o /tmp/output build-locale-archive

... e aqui está a única saída interessante ...

17779 truncate("/usr/lib/locale/locale-archive.tmpl", 0) = 0
17779 execve("/usr/sbin/tzdata-update", ["/usr/sbin/tzdata-update"], [/* 0 vars */]) = 0
17779 open("/etc/sysconfig/clock", O_RDONLY) = 3
17779 read(3, "ZONE=\"Africa/Abidjan\"\nUTC=true\n", 32767) = 31
17779 read(3, "", 32736)                = 0
17779 close(3)                          = 0
17779 open("/usr/share/zoneinfo/Africa/Abidjan", O_RDONLY) = 3
17779 read(3, "TZif2
[root@dev-007 ~]# sysctl vm.overcommit_memory=2
vm.overcommit_memory = 2
[root@dev-007 ~]# (ulimit -v 100000; build-locale-archive)
build-locale-archive: cannot read archive header
[root@dev-007 ~]# cd /usr/lib/locale/
[root@dev-007 locale]# mv locale-archive locale-archive.tmpl
[root@dev-007 locale]# (ulimit -v 100000; build-locale-archive)
Connection to dev-007 closed.
[root@dev-007 ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       10178552        0       -1
[root@dev-007 ~]# df /dev/sda3 
Filesystem           1K-blocks      Used Available Use% Mounted on
-                       952296       184    952112   1% /dev
# strace -f -o /tmp/output build-locale-archive
17779 truncate("/usr/lib/locale/locale-archive.tmpl", 0) = 0
17779 execve("/usr/sbin/tzdata-update", ["/usr/sbin/tzdata-update"], [/* 0 vars */]) = 0
17779 open("/etc/sysconfig/clock", O_RDONLY) = 3
17779 read(3, "ZONE=\"Africa/Abidjan\"\nUTC=true\n", 32767) = 31
17779 read(3, "", 32736)                = 0
17779 close(3)                          = 0
17779 open("/usr/share/zoneinfo/Africa/Abidjan", O_RDONLY) = 3
17779 read(3, "TZif2
[root@dev-007 ~]# sysctl vm.overcommit_memory=2
vm.overcommit_memory = 2
[root@dev-007 ~]# (ulimit -v 100000; build-locale-archive)
build-locale-archive: cannot read archive header
[root@dev-007 ~]# cd /usr/lib/locale/
[root@dev-007 locale]# mv locale-archive locale-archive.tmpl
[root@dev-007 locale]# (ulimit -v 100000; build-locale-archive)
Connection to dev-007 closed.
[root@dev-007 ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       10178552        0       -1
[root@dev-007 ~]# df /dev/sda3 
Filesystem           1K-blocks      Used Available Use% Mounted on
-                       952296       184    952112   1% /dev
%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 32768) = 156 17779 read(3, "", 32612) = 0 17779 close(3) = 0 17779 open("/etc/localtime", O_RDONLY) = 3 17779 read(3, "TZif2%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 32768) = 156 17779 read(3, "", 32612) = 0 17779 close(3) = 0 17779 open("/var/spool/postfix/etc/localtime", O_RDONLY) = -1 ENOENT (No such file or directory) 17779 _exit(0) = ?
%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 32768) = 156 17779 read(3, "", 32612) = 0 17779 close(3) = 0 17779 open("/etc/localtime", O_RDONLY) = 3 17779 read(3, "TZif2%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 32768) = 156 17779 read(3, "", 32612) = 0 17779 close(3) = 0 17779 open("/var/spool/postfix/etc/localtime", O_RDONLY) = -1 ENOENT (No such file or directory) 17779 _exit(0) = ?

... não sei o que fazer com isso.

Também parece que snmpd e crond morreram quando eu corri build-locale-archive .

Atualização II:

Obrigado pela resposta Gilles, mas parece que eu posso não estar seguindo sua sugestão corretamente, pois ainda perdi minha conexão quando executo:

%pre%

Eu segui suas instruções corretamente? Se não, por favor, deixe-me saber o que fiz de errado.

Atualização III

Desculpe, eu demorei tanto para voltar para você.

Aqui estão minhas informações de troca:

%pre%     
por Red Cricket 11.09.2013 / 18:08

2 respostas

3

Dado que processos não relacionados, como snmpd e crond , estão morrendo e recebem A observação de Joel Taylor que locale-gen pode usar muita memória , você é uma vítima do assassino da OOM .

Para evitar mortes de OOM, defina a política de supercomprometimento como descomprometendo : sysctl vm.overcommit_memory=2

Mesmo se você desabilitar a supercomprometimento, seria melhor limitar o dano a locale-gen limitando a quantidade de memória que ele pode alocar.

(ulimit -v 100000; build-locale-archive)
    
por 12.09.2013 / 02:20
0

O problema é o truncamento do arquivo de localidade. Verifique: link

Portanto, se você simplesmente copiar o arquivo de localidade sobre o arquivo de modelo e executar o build-locale-archive, tudo funcionará:

cp -f /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl build-locale-archive.

    
por 25.01.2016 / 21:51

Tags