부팅 할 때마다 cgroup의 프로세스를 설정해야합니까? 그렇다면 어떻게 유지 하는가?


9

cgroup을 사용하여 프로세스 제한을 설정하는 것에 대한 질문에 대한 이 답변 을 읽었습니다 . 주어진 샘플은 공정에 대한 한계를 설정합니다 (이 예에서는 sshd). 답에 따르면 프로세스의 PID는 수동으로 설정됩니다. 이것은 내 목적으로는 받아 들일 수 없으며, 주어진 응용 프로그램에서 시작한 프로세스가 시작될 때 또는 시작되는 프로세스 수에 의해 제한되지 않더라도 항상 한계를 설정하고 싶습니다.

어쩌면 그 일이 어떻게되는지 예에서 불분명 할 수 있으므로 명확한 설명이나 그에 대한 링크도 환영받을 것입니다. 커널 cgroups.txt의 예제는 위에서 이미 제공된 것과 동일한 모델을 사용하는 것 같습니다 .

답변:


6

가장 쉬운 방법은 (배포에 따라) 어쨌든 systemd당신을 책임질 수있는 사용 하는 것 sshd입니다. sshd단위 파일 에서 한계를 쉽게 구성 할 수 있습니다 . systemd어쨌든 모든 서비스를 별도의 cgroup에 넣습니다.

systemd가장 쉬운 해결책이 없으면 sshd시작 스크립트를 수정 하는 것일 수 있습니다 (업데이트로 덮어 쓰지 않도록주의하십시오. 다른 이름으로 복사하여 원래 스크립트를 비활성화하는 것이 좋습니다).


한계가 정리하기 좋으며 sshd가 아닌 번거로운 앱이 있습니다. 예제에서 sshd가 사용 된 것입니다. 아마도 모든 프로세스에 cgroup을 적용 할 수 있습니다. 스크립트가 가장 쉬운 솔루션 일 수 있습니다. 그래도 cgroups가 좋은 대답 인 것처럼 보였습니다.
casualunixer

@casualunixer 앱의 단위 파일 만 작성하면됩니다. 부팅시 자동으로 또는 수동으로 시작되도록 구성 할 수 있습니다.
Hauke ​​Laging

@laging, 응답으로 예제 단위 파일을 제공하거나 이와 비슷한 문서를 가리키는 포인터를 제공 할 수 있다면 감사하겠습니다.
casualunixer

@casualunixer 정확히 어디에서 기대할 수 있는가 : man systemdleads to man 5 systemd.unitto man 5 systemd.service. 내 시스템에서 SSH 파일은 /usr/lib/systemd/system/sshd.service입니다.
Hauke ​​Laging

아, 내가 시스템에 설치되어 있지 않다는 것을 감안할 때, 그것이이 답변의 주제 임에도 불구하고 즉시 명백하지 않았습니다.
casualunixer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.