Solusi 1:
'ulimit' adalah kontrol 'per-aplikasi'… sebenarnya per proses. Perintah ulimit shell adalah built-in shell yang mengatur batas untuk proses shell dan anak-anaknya. Masukkan perintah 'ulimit' dalam skrip yang memulai aplikasi Anda dan batas akan ditetapkan hanya untuk aplikasi ini.
Solusi 2:
Pada distro berbasis systemd juga bisa menggunakan systemd-run (yang secara tidak langsung menggunakan cgroups) . Misalnya:
systemd-run --scope -p MemoryLimit=1G firefox
Catatan:ini akan menanyakan kata sandi Anda tetapi aplikasi diluncurkan sebagai pengguna Anda. Jangan biarkan ini menyesatkan Anda sehingga berpikir bahwa perintah perlu dijalankan dengan sudo
, karena itu akan menyebabkan perintah berjalan di bawah root, yang bukan merupakan niat Anda.
Jika Anda ingin tidak memasukkan kata sandi (memang, mengapa Anda memerlukan kata sandi untuk membatasi memori yang sudah Anda miliki) , Anda dapat menggunakan --user
opsi, namun agar ini berfungsi, Anda perlu mengaktifkan dukungan cgroupsv2, yang saat ini perlu boot dengan systemd.unified_cgroup_hierarchy
parameter kernel.