Lista de argumentos muito longa: / bin / sh no redhat do Linux

0

Estou tendo um script chamado test.sh, que uso para executar como abaixo, que funciona bem: -

/root/test.sh

Então eu tentei compilar este script usando o compilador shc como abaixo com Aviso: -

shc -v -r -T -f test.sh
shc: WARNING!!
Scripts of length near to (or higher than) the current System limit on
"maximum size of arguments to EXEC", could comprise its binary execution.
In the current System the call sysconf(_SC_ARG_MAX) returns -1 bytes
and your script "test.sh" is 155201 bytes length.
shc shll=sh
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc  test.sh.x.c -o test.sh.x
shc: strip test.sh.x
shc: chmod go-r test.sh.x

como resultado deste aviso, não consigo executar este arquivo compilado: -

./test.sh.x
./test.sh.x: Argument list too long: /bin/sh

alguém pode me ajudar a corrigir esse problema? Como posso aumentar o limite de _SC_ARG_MAX para que eu possa compilar os scripts.

obrigado por me ajudar nisso.

Atenciosamente, JAS

    
por jassi10781 25.09.2017 / 17:55

1 resposta

0

O programa que você está usando não está lendo _SC_ARG_MAX corretamente e reporta como -1 .

Isso significa que, mesmo se você tentasse aumentar esse valor (o que incluiria mexer nos arquivos de cabeçalho do sistema e recompilar pelo menos o kernel e alguns utilitários), provavelmente ainda não leria o valor correto.

A mensagem é um aviso, o que significa que não é fatal. É provável que, seja qual for a operação, o utilitário pré-formado foi aprovado.

A variável de configuração do sistema ARG_MAX (que tem o valor da constante simbólica _SC_ARG_MAX ) tem o valor 2097152 no Ubuntu e 262144 no OpenBSD ( getconf ARG_MAX ). Seu valor, 155201, está bem dentro deles.

Eu não tenho acesso a uma máquina RedHat para ver qual é esse valor.

    
por 25.09.2017 / 19:02