GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit limit otevřených souborů v Linuxu

V Linuxu existují limity definované systémem pro vše, co spotřebovává zdroje. Existují například omezení počtu argumentů, které lze předat určitému příkazu, kolik vláken může běžet současně atd.

Podobně je omezen počet otevřených souborů. Jak možná víte, otevřený soubor je aktivně používán v některých jiných programech, a proto spotřebovává paměť.
Limit otevřených souborů můžete zobrazit a upravit pomocí příkazu ‘ulimit ‘.

Nyní jsou definovány dva typy limitů:Hard limit a Měkký limit .

  • pevný limit pro otevřené soubory je staticky nastavená hodnota a lze ji změnit pouze pomocí ‘rootu ‘ uživatel Linuxu.
  • Měkký limit je takový, který může být měněn procesy dynamicky, tj. za běhu, pokud proces potřebuje více otevřených souborů, než je počet povolený měkkým limitem.

Netřeba dodávat, že měkký limit je něco, co by mohlo vést k bezpečnostním problémům.

Zkontrolujte limity otevřených souborů v Linuxu

Zobrazení nebo výpis pevného limitu souborů, spusťte:

$ ulimit -Hn

Podobně pro zobrazení měkkého limitu , spustit:

$ ulimit -Sn

Zde je 'S' a 'H' znamená měkké a tvrdé limity, zatímco 'n' označuje počet otevřených souborů.

Změna limitů otevřených souborů v systému Linux

Pokusme se nyní upravit tyto limity jednoduše přidáním třetího argumentu pro novou hodnotu limitu za 'Sn' nebo 'Hn' .

$ ulimit -Sn 5000
$ ulimit -Hn 5000

Takto upravené limity však zůstávají dočasně změněny, dokud není relace (tj. terminál) otevřena. Chcete-li trvale upravit limity, postupujte podle následujících kroků.

Trvale nastavit limity otevřených souborů v Linuxu

Otevřete soubor ‘/etc/security/limits.conf ‘ ve ‘vim “ nebo libovolný editor dle vašeho výběru. Upozorňujeme, že toto je soubor chráněný proti zápisu a měl by být otevřen pomocí „sudo ‘ nebo jako správce.

$ sudo vim /etc/security/limits.conf

Všimněte si, že limity lze nastavit pro všechny uživatele nebo pro jednotlivé uživatele. Syntaxe pro nastavení pevného limitu je:

* hard nofile 5000

'*' znamená, že limit platí pro všechny uživatele. Druhý řetězec na řádku je typ limitu, který je ‘tvrdý‘ v tomto případě.

Třetí řetězec je limit, který chceme upravit. V našem případě je to ‘nofile‘ , tedy počet souborů. Takto lze zde nastavit i další limity, např. ‘noproc‘ pro řadu procesů. Konečně čtvrtý řetězec je nový limit, který se má nastavit pro počet souborů.

Pokud chcete nastavit limit pouze pro konkrétního uživatele, můžete tak učinit následovně:

abhi soft nofile 5000

Zde ‘abhi‘ je jméno uživatele.

Nyní přidáme tyto řádky do souboru a pak uvidíme, zda byl limit změněn.

Uložte a ukončete soubor.

Tyto limity budou vyžadovat, aby se uživatel odhlásil a znovu přihlásil, protože spuštěné programy stále berou v úvahu starší limity. Spusťte ulimit znovu, abyste ověřili, zda se limity skutečně změnily.

$ ulimit
Závěr

V tomto článku jsme viděli, jak změnit limit počtu otevřených souborů v Linuxu. Spusťte 'ulimit --help' pokud chcete příkaz znát podrobněji.

Děkujeme za přečtení a dejte nám vědět své myšlenky nebo otázky v komentářích níže!


Linux
  1. Jak zobrazit nebo změnit ACL v souborech Linux

  2. 5 příkladů dotykových příkazů Linuxu (jak změnit časové razítko souboru)

  3. Jak fungují limity linuxových deskriptorů?

  1. Jak zvýšit limit počtu otevřených souborů v Linuxu

  2. Jak vytvořit, extrahovat nebo otevřít soubor RAR v Linuxu?

  3. Jak změnit Shell v Linuxu

  1. Jak přesunout soubor v Linuxu

  2. Jak přejmenovat soubor v Linuxu?

  3. Jak změnit časový limit MySQL v Linuxu?