Planuję uruchomić aplikację Java za pomocą nohup ... &
. Limit musi dotyczyć takich poleceń.
Planuję uruchomić aplikację Java za pomocą nohup ... &
. Limit musi dotyczyć takich poleceń.
Odpowiedzi:
Większość systemów używa PAM i ma pam_limits
ustawione limity modułów na podstawie /etc/security/limits.conf
. Limit otwieranych plików na użytkownika nazywa się nofile
. Możesz ustawić go dla każdego użytkownika lub dla konkretnego użytkownika lub grupy i możesz ustawić limit, który użytkownik może zastąpić (miękki limit) i inny, który tylko root może zastąpić (twardy limit). Dokumentacji oraz limits.conf
strona podręcznika mają szczegóły. Na przykład, aby podnieść limit do 50000 dla wszystkich, wstaw tę linię /etc/limits.conf
(ustawienie zacznie obowiązywać po zalogowaniu):
* - nofile 50000
limits.conf
do * hard nofile 50000
i / lub * soft nofile 50000
. Nie znam technicznej różnicy między twardym a miękkim i zawsze robiłem oba.
limit descriptors 50000
aby zmienić wartość w danym oknie / sesji terminala.
ulimit
polecenie (wywoływane limit
w csh). Nieuprzywilejowany użytkownik nigdy nie może przekroczyć twardego limitu.
możesz dodać fs.file-max = <your number>
do /etc/sysctl.conf
. Następnie uruchom ponownie.
sysctl fs.file-max=123456
. ( /etc/sysctl.conf
jest odczytywany w czasie rozruchu przez skrypt, który wywołuje sysctl
zawartość.)
Możesz użyć do tego ulimit:
http://bloggerdigest.blogspot.com/2006/10/10/purpose-of-ulimit-linux-command.html
Chociaż powinieneś upewnić się, że otwarcie tak wielu uchwytów plików jest absolutnie konieczne przed skorzystaniem z takich regulacji. Zwiększenie maksymalnej liczby uchwytów plików tylko dlatego, że zapomniałeś wykonać inputstream.close () w pętli, tylko opóźni podstawowy problem.
Użyj ulimit (polecenie Bash - man bash lub znajdź podobny dla powłoki) dla każdej instancji programu. Nie używaj globalnych limitów systemowych, jeśli nie wiesz, co robisz - możliwe DoS.
nofile
w limits.conf
za 100000 pomyślnie. Mogę zaświadczyć, że ustawienie zbyt dużej wartości uniemożliwiło późniejsze logowanie za pomocą SSH i musiałem uruchomić komputer z dysku DVD, aby poprawić tę wartość w pliku limit.conf, aby odzyskać system.
vi ~/.bashrc
I dodaj linię na końcu pliku
ulimit -n 169203