Pregunta

Tengo el siguiente script:

cat > /tmp/script.sh <<EndOfScript
#!/bin/sh
ulimit -n 8192
run_app
EndOfScript

, que se ejecuta sin problemas a nivel local, que siempre está bien. Pero si trato de ejecutar de forma remota a través de SSH:

scp /tmp/script.sh user@host:/tmp/script.sh
ssh user@host "chmod 755 /tmp/script.sh; /tmp/script.sh"

Tengo el error:

ulimit: open files: cannot modify limit: Operation not permitted

También probé el siguiente comando:

ssh user@host "ulimit -n 8192"

mismo error.

Parece que la ejecución remota de comandos ssh está imponiendo un límite duro 1024 sobre el límite nofile, pero no puedo encontrar la manera de modificar este valor predeterminado. He intentado modificar /etc/security/limits.conf y sshd restart, sigue siendo el mismo error.

¿Fue útil?

Solución 2

Fiannly descubierto la respuesta: añadir lo siguiente a / etc / script de inicio

ulimit -c unlimited
ulimit -HSn 65535
# Execute the program.
eval exec "$4"

Otros consejos

En lugar de utilizar la solución de /etc/initscript (y no cometa un error tipográfico en ese archivo .. :), si lo que desea sshd en honor a los ajustes realizados en /etc/security/limits.conf, usted debe asegurarse de que ha UsePAM yes en /etc/ssh/sshd_config, y listas /etc/pam.d/sshd session required pam_limits.so (o de otra manera incluye otro archivo que lo hace).

Eso debería ser todo lo que hay que hacer.

En versiones anteriores desde OpenSSH (<3.6 algo) también hubo un problema con UsePrivilegeSeparation que impidieron límites siendo honrados, pero lo arreglaron en las últimas versiones.

ulimit requiere privilegios de superusuario para funcionar.

Yo sugeriría que pedir al administrador del servidor para modificar ese valor para usted en el servidor que está intentando ejecutar el script en.

El / ella puede hacer que modificando /etc/secutiry/limits.conf en Linux. Aquí está un ejemplo que puede ayudar a:

*               soft    nofile          8192
*               hard    nofile          8192

Después de eso, no es necesario reiniciar sshd. Sólo iniciar sesión otra vez.

Yo sugeriría que usted pueda hacer la misma pregunta en ServerFault sin embargo. Usted obtendrá mejor del lado del servidor respuestas relacionadas allí.

Comprobar los guiones de puesta en marcha (/etc/profile, ~/.??*) para una llamada a ulimit. IIRC, una vez que se ha impuesto un límite, no puede ampliarse más.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top