ulimit PICKLE: “İşleme izin verilmiyor” ve “Komut bulunamadı”


15

Geçerli kullanıcı için maksimum açık dosya sayısını artırmaya çalışıyorum

> ulimit -n
1024

Aşağıdaki şekilde artmaya ve başarısız olmaya çalışıyorum

> ulimit -n 4096
bash: ulimit: open files: cannot modify limit: Operation not permitted

Bu yüzden doğal bir şey yapıyorum ve geçici izinle koşmaya çalışıyorum ama başarısız

> sudo ulimit -n 4096
sudo: ulimit: command not found

Sorular

  1. Ulimit nasıl artırılır?
  2. Bu neden oluyor?

Fedora 14'ü kullanma


Silinen yoruma yanıt: ulimit 4096çalışmıyor. Bence -ndoğru. Kavramın bir kanıtı olarak, önce ben sudo su - root(ama sadece kök için değişir) çalışır.
paislee


Yanıtlar:


17

ulimitharici bir komut değil, yerleşik bir kabuktur. Kabuk sürecinin kendisi üzerinde hareket ettiği için inşa edilmesi gerekir cd: geçerli dizin gibi sınırlar, söz konusu işlemin bir özelliğidir.

sudo bash -c 'ulimit -n 4096'işe yarayacaktır, ancak bu sudosadece size çağrılan bash sürecinin sınırını değiştirir ve bu size yardımcı olmaz.

Her sınır için iki değer vardır: sabit sınır ve yumuşak sınır. Sadece kök zor sınırı yükseltebilir; herhangi biri sabit sınırı düşürebilir ve yumuşak sınır, sert sınırdan daha yüksek olamayacağı tek kısıtlamayla her iki yönde de değiştirilebilir. Yumuşak sınır, önemli olan gerçek değerdir.

Bu nedenle, tüm işlemlerinizin en az 4096 açık dosya için sabit bir sınırı olduğunu ayarlamanız gerekir. Yumuşak sınırı 1024'te tutabilirsiniz. Çok fazla dosya gerektiren bu işlemi başlatmadan önce yumuşak sınırı yükseltin. İçinde /etc/security/limits.conf, satırları ekleyin

paislee hard nofile 4096
paislee soft nofile 1024

nerede paisleeişleminizi yapmak istediğiniz kullanıcının adı. Daha yüksek bir sınır istediğiniz işlemi başlatan kabukta çalıştırın

ulimit -Sn unlimited

yumuşak limiti sert limite yükseltmek için.


1
Alternatifler için sudo bash -colan sudo -ibir giriş kabuğu başlar ve hangi sudo -swhcih bir kabuk başlatır. Aynı sınırlamalar geçerlidir, ancak bu diğer durumlarda yararlı olabilir.
Bram

Teşekkürler. İlgili bazı sorular sorabilir miyim? Diğer yanıt ve gönderi stackoverflow.com/a/17483998/156458 ve unix.stackexchange.com/a/238413/674 ve unix.stackexchange.com/a/169035/674 kullanılması önerilir sudo sh -c "ulimit -c 1024 && exec su $LOGNAME". Ancak her iki ulimit -c 1024ve exec su $LOGNAME" yalnızca yarattığı kabuk etkiler sudo, bu nedenle komuta amacı nedir? exec su $LOGNAME"ayrıca değişen limiti kullanmak için anlamlı bir şey yapmaz. Çok kafam karıştı ve bir şey eksik olup olmadığımı merak ediyorum.
Tim

ulimit -Sn unlimitedÇoğu mermide çalışmadığını lütfen unutmayın . Doğru yöntem aramak ulimit -ave sonra ulimit -n <number><sayı sabit sınırdır (sağ sütun).
şevkle

3

dosyayı açın /etc/security/limits.confve satırı ekleyin <user> soft nofile <value>. ulimitkök kullanıcı için değişiklik kullanmak ve aynı deneyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.