Mam proces działający jako użytkownik przekładni i chcę to zmienić open files
aby uniknąć tego paskudnego błędu:
BŁĄD 2014-09-12 17: 49: 14.000000 [main] accept (Zbyt wiele otwartych plików) - & gt; libgearman-server / gearmand.cc: 788
Jak mogę uruchomić ulimit jako inny użytkownik Ubuntu i zmienić otwarte pliki? Obecnie nie loguję się jako gearman, ale mam uprawnienia administratora. Próbowałem to zrobić:
su gearman --shell /bin/bash --command "ulimit -n"
zgodnie z zaleceniami tutaj ale nic nie wychodzi:
$ su gearman --shell /bin/bash --command "ulimit -n"
Password:
$
Po uruchomieniu
ulimit
polecenie wpływa tylko na uruchomiony procesulimit
(powłoka) i wszystkie podprocesy. Więc kiedy uciekaszbash --command "ulimit -n"
, wpływa tylko na liczbę otwartych plików dla tej instancji bash, a następnie na wyjścia bash, a więc nie wpływa na przyszłe procesy.Aby osiągnąć to, co chcesz (aby zwiększyć limit otwartego pliku dla prawdziwego procesu), prawdopodobnie bardziej sensowne jest edytowanie
limits.conf
zwiększyć limit otwartego pliku dla konkretnego użytkownika przekładni.Zobacz przykłady limits.conf gdzie indziej lub tutaj .
źródło
more /proc/<proc_id>/limits
... może warto dodać do odpowiedzi/etc/security/limits.conf
Spróbuj użyć
su - <USERNAME> -c ulimit' -Hn'
. Właśnie przetestowałem go na CEntOS 7 i działa.źródło