Příkaz ulimit umožňuje uživatelům zobrazit nebo snížit jejich limity pro aktuální shell. Pouze uživatel root může zvýšit omezení nad určený pevný limit. Nastavené limity platí také pro jakýkoli podřízený proces shellu. Manuová stránka shellu poskytuje více informací o použití příkazu ulimit, výňatek z manové stránky bash je níže:
ulimit [-HSTabcdefilmnpqrstuvx [limit]] Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. Options are interpreted as follows: -a All current limits are reported -b The maximum socket buffer size -c The maximum size of core files created -d The maximum size of a process’s data segment -e The maximum scheduling priority ("nice") -f The maximum size of files written by the shell and its children -i The maximum number of pending signals -l The maximum size that may be locked into memory -m The maximum resident set size (many systems do not honor this limit) -n The maximum number of open file descriptors (most systems do not allow this value to be set) -p The pipe size in 512-byte blocks (this may not be set) -q The maximum number of bytes in POSIX message queues -r The maximum real-time scheduling priority -s The maximum stack size -t The maximum amount of cpu time in seconds -u The maximum number of processes available to a single user -v The maximum amount of virtual memory available to the shell -x The maximum number of file locks -T The maximum number of thread
Syntaxe příkazu ulimit je:
# ulimit [options] [limit]
Uživatelé zřídka používají příkaz ulimit k omezení svého vlastního účtu, takže možnosti pro tento příkaz nejsou tak důležité jako pochopení toho, co výstup zobrazuje. Některé limity se navíc používají velmi zřídka. Běžně používané limity jsou popsány v následující tabulce:
Limit | Popis |
---|---|
fsize | Maximální povolená velikost souboru v paměti |
procesor | Maximální povolený čas procesoru |
nproc | Maximální počet souběžně běžících procesů |
maxlogins | Maximální počet souběžných přihlášení |
Chcete-li například nastavit limit pro maximální počet otevřených deskriptorů souborů:
# ulimit -n 512
Všechny aktuální limity můžete zobrazit zadáním:
# ulimit -a
Pokud při spouštění příkazu ulimit narazíte na níže uvedenou chybu:
ulimit: command not found
můžete zkusit nainstalovat níže uvedený balíček podle vaší volby distribuce:
Distribuce | Příkaz |
---|---|
OS X | brew install bash |
Debian | apt-get install bash |
Ubuntu | apt-get install bash |
Alpine | apk přidat bash |
Arch Linux | pacman -S bash |
Kali Linux | apt-get install bash |
CentOS | yum instalační bash |
Fedora | dnf install bash |
Raspbian | apt-get install bash |
Příklady příkazů ulimit
1. Získejte vlastnosti všech uživatelských limitů:
# ulimit -a
2. Získejte pevný limit pro počet současně otevřených souborů:
# ulimit -H -n
3. Získejte měkký limit pro počet současně otevřených souborů:
# ulimit -S -n
4. Nastavte maximální limit procesu na uživatele:
# ulimit -u 30
5. Nastavte limit velikosti výpisu jádra na n 512bajtových bloků:
# ulimit –c n
6. Nastavte limit velikosti datové oblasti na n kilobajtů:
# ulimit -d n
7. Nastavte limit zápisu do souboru podřízeného procesu na n bloků 512 bajtů (výchozí):
# ulimit -f n
8. Nastavte limit velikosti fyzické paměti na n kilobajtů:
# ulimit -m n
9. Nastavte limit velikosti oblasti zásobníku na n kilobajtů:
# ulimit -s n
10. Nastavte časový limit procesu na n sekund:
# ulimit -t n