Me sorprende sudoque no haya dado un error al pasar ulimit; Por lo general, necesita un binario externo, pero ulimites un shell incorporado.
anfetamáquina
@amphetamachine Echa un vistazo which ulimit. Nada sorprendente al respecto.
Daniel Beck
Esta respuesta es terriblemente engañosa e inútil, incluso si se basa en un grano de verdad.
hmijail llora a los despedidos el
3
La respuesta de Daniel Beck no dice toda la verdad (de hecho es un juego de manos), y no ayuda a las personas que realmente necesitan hacer "sudo ulimit".
El problema es ese
ulimit tiene límites suaves y duros
una vez que establezca el límite estricto, debe ser superusuario para volver a establecerlo más alto
sudo inicia un nuevo shell; cuando salgas, ¡estás de vuelta a tu viejo ulimit!
Explicación detallada
El ejemplo de Daniel solo funciona en una situación muy específica (que afortunadamente es la predeterminada).
Contraejemplo:
$ ulimit -s 8191 # set both hard and soft limits
$ ulimit -s # show current soft limit
8191
$ ulimit -s 16384 # set both hard and soft limits
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
Entonces, estableciste el límite con ulimit -s, y eso fue y estableciste límites suaves y duros. Ahora está bloqueado para configurarlo más alto.
En este punto, puede pensar en intentarlo sudo; pero no funcionará, por lo que escribió Daniel.
Lo que sucedió aquí es que sudocomenzó un nuevo shell, donde se ejecutó ulimit; y en ESA shell, se estableció el nuevo ulimit. Pero entonces ese caparazón terminó su trabajo, fue derribado, y ahora estás de vuelta en tu caparazón anterior con su ulimit anterior.
Prueba:
$ ulimit -s 8191
$ ulimit -s
8191
$ sudo bash
# ulimit -s
8191
# ulimit -s 16384
# ulimit -s # It worked!
16384
# exit
exit
$ ulimit -s # ... but now we're back to the old ulimit.
8191
$
Entonces, ¿por qué funcionó exactamente el ejemplo de Daniel? Debido a los límites duros y blandos predeterminados de ulimit, podría empujar el límite blando al duro. Podemos hacerlo en cámara lenta para mostrar el truco:
$ ulimit -Ss # show the Soft limit
8192
$ ulimit -Hs # show the Hard limit
65532
$ ulimit -s # by default, shows the Soft limit
8192
$ ulimit -s 16384 # set both the Soft and Hard limit
$ ulimit -s # shows the Soft limit
16384
$ ulimit -Hs # but, gotcha! the Hard limit has also been set
16384
$ ulimit -s 16385 # so now we can't go higher
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
$
En resumen: si establece su límite estricto y desea subirlo, no tiene suerte en ese shell , ... a menos que permanezca como superusuario o use algún encantamiento para eliminar privilegios después.
cd
.Respuestas:
ulimit
es shell / proceso específico. Sáltate elsudo
.fuente
sudo
que no haya dado un error al pasarulimit
; Por lo general, necesita un binario externo, peroulimit
es un shell incorporado.which ulimit
. Nada sorprendente al respecto.La respuesta de Daniel Beck no dice toda la verdad (de hecho es un juego de manos), y no ayuda a las personas que realmente necesitan hacer "sudo ulimit".
El problema es ese
Explicación detallada
El ejemplo de Daniel solo funciona en una situación muy específica (que afortunadamente es la predeterminada).
Contraejemplo:
Entonces, estableciste el límite con
ulimit -s
, y eso fue y estableciste límites suaves y duros. Ahora está bloqueado para configurarlo más alto.En este punto, puede pensar en intentarlo
sudo
; pero no funcionará, por lo que escribió Daniel.Lo que sucedió aquí es que
sudo
comenzó un nuevo shell, donde se ejecutóulimit
; y en ESA shell, se estableció el nuevo ulimit. Pero entonces ese caparazón terminó su trabajo, fue derribado, y ahora estás de vuelta en tu caparazón anterior con su ulimit anterior.Prueba:
Entonces, ¿por qué funcionó exactamente el ejemplo de Daniel? Debido a los límites duros y blandos predeterminados de ulimit, podría empujar el límite blando al duro. Podemos hacerlo en cámara lenta para mostrar el truco:
En resumen: si establece su límite estricto y desea subirlo, no tiene suerte en ese shell , ... a menos que permanezca como superusuario o use algún encantamiento para eliminar privilegios después.
fuente