부팅 할 때마다 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.