Abych problém vyřešil v https://unix.stackexchange.com/a/446428/674, sledoval jsem https://stackoverflow.com/a/17483998/156458, ale nenastavuje limit velikosti souboru jádra?
$ sudo sh -c "ulimit -c 1024 && exec su t"
$ ulimit -c
0
-
Změní tento způsob limitní velikost souboru jádra dočasně pouze pro aktuální shell, nebo trvale pro všechny shelly všech uživatelů nebo aktuálního uživatele?
-
Aktualizace: Původní příspěvek https://stackoverflow.com/a/17483998/156458 a https://unix.stackexchange.com/a/238413/674 a https://unix.stackexchange.com/a/169035/674 vše doporučeno pomocí
sudo sh -c "ulimit -c 1024 && exec su $LOGNAME"
. Ale obaulimit -c 1024
aexec su $LOGNAME"
ovlivňuje pouze shell vytvořený pomocísudo
, tak jaký je účel příkazu?exec su $LOGNAME"
také nedělá nic smysluplného pro využití změněného limitu.
Poznámka: Zaměřuji se na to, proč výše uvedený způsob nefunguje, i když existují jiné způsoby, jak problém obejít:
-
Měl bych vložit příkaz, který používá novou limitní hodnotu, do
shellu provedeného sudonapř.
$ sudo sh -c "ulimit -c 1024 && sleep 100" ^Quit $ ls core
- Mohl bych také zkusit upravit
/etc/security/limits.conf
.
Přijatá odpověď:
Podle manuálové stránky ulimit
„poskytuje kontrolu nad zdroji dostupnými pro shell a procesy, které spouští“. Tedy ulimit
hodnota je platná pro aktuální shell.
Vyvoláváte ulimit
v subshell, a když se ukončí, vrátíte se zpět na výchozí ulimit
hodnotu.
[[email protected] ~]# ulimit -c
0
[[email protected] ~]# ulimit -c 1024
[[email protected] ~]# ulimit -c
1024