"Launchctl limit" ve "ulimit" arasındaki ilişki nedir?


11

Sistem başlangıç ​​dosyalarında / kabuk başlangıç ​​komut dosyalarında ulimit yapılandırması yoktur.

ulimit -a gösterileri:

-u: processes                       1064
-n: file descriptors                256

launchctl limit gösterileri:

maxproc     2048           2048           
maxfiles    2048           2048

Launchctl'ın limitlerinin bir kabuğun ulimit çıktısıyla eşleşmesi gerektiğini belirsiz bir şekilde hatırlıyorum, yanlış olabilirim.

Lauchctl'in sınırları ile ulimit arasında herhangi bir ilişki var mı?


Komutların kılavuz sayfasından tatmin edici cevaplar alamıyor musunuz?
Andrew U.10

@AndrewU. launchctl manual page limitten bahsetmez, ulimit manual page launchctl veya launchd'den bahsetmez.
Howard

Yanıtlar:


10

Kabukta ulimit, "kabuğun ve onun tarafından başlatılan süreçlerin kaynakları üzerinde kontrol sağlar" (bkz. man bash). Bu nedenle, sadece kabuk ve çocukları için geçerlidir. Fırlatma sınırları, onunla ve yönettiği süreçlerle ilgilidir. İkisi ayrı.

Bireysel programlar, Standart C Kütüphanesi rutinlerini çağırarak ulimit()veya getrlimit()ve setrlimit(). İşlem süper kullanıcı olarak çalışmadığı sürece belirli kaynak sınırları yükseltilemez.

Pratik bir örnek olarak, büyük yazılım projelerinde hata ayıklama ve kabuğun açık dosya sayısı için varsayılan sınırı yeterince büyük değil. .Bashrc dosyamda aşağıdakiler var:

# Increase the upper limit on the number of open files:
ulimit -n 1024

Şimdi hata ayıklayıcım ihtiyaç duyduğu tüm dosyaları açamadığından şikayet etmiyor. Açıkçası, bunun fırlatma üzerinde hiçbir etkisi olmamalıdır.


1
Bunun üzerinde durmak için: varsayılan ulimit ayarları launchctl limit; kullanıcı ulimit sayılarını değiştirebilse de, launchctl limitzor sınırları aşmayabilir.
Howard

Bu yeniden başlatma sıfırlanır
engineerDave
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.