누구나 특정 사용자에 대한 모든 프로세스를 종료할 수 있습니다.

누구나 특정 사용자에 대한 모든 프로세스를 종료할 수 있습니다.

공유 서버에서는 다른 사용자(루트 액세스 권한도 없음)가 리소스를 필요로 할 때마다 우선 순위가 낮은 사용자의 프로세스를 종료할 수 있도록 우선 순위가 매우 낮은 사용자를 두고 싶습니다.

그런 일이 허용될 수 있나요?

답변1

다른 사용자에게 프로세스 종료 권한 부여~처럼우선순위가 낮은 사용자는 통과

sudo -u lowpriouser /bin/kill PID

사용자는 루트 권한이 없는 한 자신의 프로세스에만 신호를 보낼 수 있습니다. sudo -u파일에 올바르게 설정된 사용자를 사용하면 sudoers우선 순위가 낮은 사용자의 신원을 가정하고 프로세스를 종료할 수 있습니다.

예를 들어:

%killers ALL = (lowpriouser) /bin/kill

killers이렇게 하면 그룹의 모든 사용자가 을(를) 수행할 수 /bin/kill있습니다 lowpriouser.

sudoers시스템 설명서 도 참조하세요 .


OpenBSD 시스템에서는 doas다음과 같이 구성된 기본 유틸리티를 통해 동일한 작업을 수행할 수 있습니다.

permit :killers as lowpriouser cmd /bin/kill

그 다음에

doas -u lowpriouser /bin/kill PID

매뉴얼 보기doas그리고doas.conf.

답변2

이러한 프로세스를 종료해서는 안 됩니다. 우선 순위가 낮을 경우 리소스를 거의 소모하지 않습니다.

실제로 우선순위를 낮추려면 우선순위를 수동으로 변경하거나 autonice제가 몇 년 전에 DEC OSF/1(c.1994)에 대해 작성한 것과 같은 데몬을 사용하십시오. 런닝타임이 늘어나니까.

편집하다라는 패키지가 있습니다.and이 기능은 최신 Unices에 제공됩니다.

답변3

나는 당신이 잘못된 각도에서 접근하고 있다고 생각합니다. 하나의 프로세스가 낮은 우선 순위 설정(CPU, I/O)으로 실행되고 있으면 실행 예약이 없기 때문에 다른 프로세스에 큰 영향을 미치지 않습니다. 메모리 사용량의 경우, 주 메모리가 부족하고 프로세스가 오랫동안 실행되도록 예약되지 않은 경우(예: CPU 및 I/O 제약으로 인해) "클린" 페이지가 삭제되고 "더티" 페이지가 커밋되거나 교체되어 더 이상 다른 프로세스의 성능에 영향을 미치지 않습니다.

결론: 올바른 우선순위 설정과 충분한 스왑 공간을 사용하면 더 중요한 작업을 위한 "공간"을 만들기 위해 우선순위가 낮은 작업을 종료할 필요가 없습니다. 대신 커널은 후자를 위해 전자를 절전 모드로 전환합니다. .

관련 정보