Czy procesy w grupach muszą być ustawiane przy każdym uruchomieniu? Jeśli tak, jak je utrwalić?


9

Czytałem tę odpowiedź na pytanie dotyczące ustawiania limitów procesów za pomocą cgroups. Podana próbka określa limity dla procesu (w przykładzie sshd). W odpowiedzi PID procesu ustawia się ręcznie. Byłoby to nie do przyjęcia dla moich celów, chciałbym, aby procesy uruchamiane z danej aplikacji zawsze miały ustawione limity, bez względu na to, kiedy są uruchamiane, ani ograniczone przez liczbę takich procesów.

Być może z przykładu nie jest jasne, jak to się stanie, więc jasne wyjaśnienie lub link do jednego z nich byłoby również mile widziane. Przykład w jądrze cgroups.txt wydaje się używać tego samego modelu, co już podano powyżej .

Odpowiedzi:


6

Najprostszym sposobem jest użycie, systemdktóre i tak może być odpowiedzialne za ciebie sshd(w zależności od dystrybucji). Możesz łatwo skonfigurować limity w sshdpliku jednostkowym. systemdi tak umieszcza wszystkie usługi w osobnych grupach.

Bez systemdnajłatwiejszego rozwiązania jest prawdopodobnie modyfikacja sshdskryptu startowego (pamiętaj, że nie jest ona zastępowana przez aktualizację; dobrym pomysłem może być skopiowanie jej pod inną nazwą i wyłączenie oryginalnego skryptu).


Jest kłopotliwa aplikacja, której granice świetnie byłoby wyczyścić, to nie jest sshd. Po prostu w tym przykładzie użyto sshd. Przypuszczalnie możesz zastosować cgroups do dowolnego procesu. Skrypt może okazać się najłatwiejszym rozwiązaniem. Wyglądało jednak na to, że grupy byłyby dobrą odpowiedzią.
casualunixer

@casualunixer Wystarczy napisać plik jednostkowy dla swojej aplikacji. Możesz skonfigurować tak, aby był uruchamiany automatycznie podczas rozruchu lub po prostu ręcznie.
Hauke ​​Laging

@laging, jeśli możesz podać przykładowy plik jednostkowy w odpowiedzi lub wskaźnik do dokumentacji do podobnego, byłoby to mile widziane.
casualunixer

@casualunixer To jest dokładnie tam, gdzie można się spodziewać: man systemdprowadzi do man 5 systemd.unitprowadzi do man 5 systemd.service. W moim systemie plik SSH to /usr/lib/systemd/system/sshd.service.
Hauke ​​Laging

Ach, biorąc pod uwagę, że nie mam zainstalowanego systemu, nawet jeśli jest to temat tej odpowiedzi, nie było to od razu oczywiste.
casualunixer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.