İyi..
$ ulimit -s
8192
$ sudo ulimit -s 16384
$ ulimit -s
8192
ulimit
Bana neden bu kadar barbarca bir şekilde saygısızlık ediyor?
İyi..
$ ulimit -s
8192
$ sudo ulimit -s 16384
$ ulimit -s
8192
ulimit
Bana neden bu kadar barbarca bir şekilde saygısızlık ediyor?
Yanıtlar:
ulimit
kabuk / işleme özgüdür. Atla sudo
.
$ ulimit -s
8192
$ ulimit -s 16384
$ ulimit -s
16384
sudo
Geçtiğimde hata vermediğim için şaşırdım ulimit
; genellikle harici bir ikiliye ihtiyaç duyar, ancak ulimit
bir kabuk yerleşiktir.
which ulimit
. Bu konuda şaşırtıcı bir şey yok.
Daniel Beck'in cevabı tüm gerçeği söylemiyor (aslında el çabukluğu) ve aslında "sudo ulimit" yapması gereken insanlara yardım etmiyor.
Problem şu
Daniel'in örneği sadece çok özel bir durumda (neyse ki varsayılan olan) çalışır.
counterexample:
$ ulimit -s 8191 # set both hard and soft limits
$ ulimit -s # show current soft limit
8191
$ ulimit -s 16384 # set both hard and soft limits
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
Böylece, limiti ile ayarlarsınız, ulimit -s
bu da gidip hem yumuşak hem de sert limitleri ayarlar. Şimdi daha yükseğe ayarlamanız engellendi.
Bu noktada denemeyi düşünebilirsiniz sudo
; ama Daniel'in yazdıkları yüzünden işe yaramayacak.
$ sudo ulimit -s 16384 # maybe with sudo?
$ ulimit -s
8191
$
Burada olan, sudo
koştuğu yerde yeni bir mermi başlatması ulimit
; ve THAT kabuğunda yeni ulimit kuruldu. Ama sonra o kabuk işini bitirdi, yıkıldı ve şimdi önceki ulimitiyle bir önceki kabuğuna geri döndün.
Kanıt:
$ ulimit -s 8191
$ ulimit -s
8191
$ sudo bash
# ulimit -s
8191
# ulimit -s 16384
# ulimit -s # It worked!
16384
# exit
exit
$ ulimit -s # ... but now we're back to the old ulimit.
8191
$
Peki Daniel'in örneği tam olarak neden işe yaradı? Ulimit'in varsayılan sert ve yumuşak sınırları nedeniyle, yumuşak sınırı sert olana zorlayabilir. Hile göstermek için yavaş çekimde yapabiliriz:
$ ulimit -Ss # show the Soft limit
8192
$ ulimit -Hs # show the Hard limit
65532
$ ulimit -s # by default, shows the Soft limit
8192
$ ulimit -s 16384 # set both the Soft and Hard limit
$ ulimit -s # shows the Soft limit
16384
$ ulimit -Hs # but, gotcha! the Hard limit has also been set
16384
$ ulimit -s 16385 # so now we can't go higher
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
$
Özetle: Eğer zor limitinizi belirlerseniz ve yukarı itmek istiyorsanız , o kabukta şansınız kalmaz , ... süper kullanıcı olarak kalmazsanız veya daha sonra ayrıcalıkları bırakmak için biraz büyü kullanmazsanız.
cd
.