Řešení 1:
'ulimit' je kontrola 'per-aplikace'... ve skutečnosti pro proces. Příkaz ulimit shell je vestavěný shell, který nastavuje limit pro proces shellu a jeho potomky. Vložte příkaz 'ulimit' do skriptu spouštějícího vaši aplikaci a limit bude nastaven pouze pro tuto aplikaci.
Řešení 2:
V distribucích založených na systemd můžete také použít systemd-run (který nepřímo používá cgroups) . Například:
systemd-run --scope -p MemoryLimit=1G firefox
Poznámka:Toto vás požádá o heslo, ale aplikace se spustí jako váš uživatel. Nedovolte, aby vás to svedlo k domněnce, že příkaz musí běžet s sudo
, protože by to způsobilo spuštění příkazu pod rootem, což stěží bylo vaším záměrem.
Pokud nechcete zadávat heslo (proč byste vlastně potřebovali heslo k omezení paměti, kterou již vlastníte) , můžete použít --user
možnost, ale aby to fungovalo, budete potřebovat povolenou podporu cgroupsv2, která právě teď vyžaduje zavedení s systemd.unified_cgroup_hierarchy
parametr jádra.