Per risolvere il problema in https://unix.stackexchange.com/a/446428/674, ho seguito https://stackoverflow.com/a/17483998/156458, ma non imposta la dimensione del limite del file principale?
$ sudo sh -c "ulimit -c 1024 && exec su t"
$ ulimit -c
0
-
In questo modo cambia temporaneamente la dimensione del limite del file core solo per la shell corrente o in modo permanente per tutte le shell di tutti gli utenti o dell'utente corrente?
-
Aggiornamento: Il post originale https://stackoverflow.com/a/17483998/156458 e https://unix.stackexchange.com/a/238413/674 e https://unix.stackexchange.com/a/169035/674 tutti consigliati usando
sudo sh -c "ulimit -c 1024 && exec su $LOGNAME"
. Ma entrambiulimit -c 1024
eexec su $LOGNAME"
riguarda solo la shell creata dasudo
, quindi qual è lo scopo del comando?exec su $LOGNAME"
inoltre non fa nulla di significativo per utilizzare il limite modificato.
Nota: Mi sto concentrando sul motivo per cui il modo sopra non funziona, sebbene ci siano altri modi per aggirare il problema:
-
Dovrei inserire il comando che utilizza il nuovo valore limite all'interno della
shell eseguita da sudoes.
$ sudo sh -c "ulimit -c 1024 && sleep 100" ^Quit $ ls core
- Potrei anche provare a modificare
/etc/security/limits.conf
.
Risposta accettata:
Secondo la manpage, ulimit
“fornisce il controllo sulle risorse a disposizione della shell e sui processi da essa avviati”. Quindi ulimit
il valore è valido per la shell corrente.
Stai invocando ulimit
in una subshell e quando termina torni al valore predefinito ulimit
valore.
[[email protected] ~]# ulimit -c
0
[[email protected] ~]# ulimit -c 1024
[[email protected] ~]# ulimit -c
1024