사용자가 프로세스의 우선 순위를 부정적 수준으로 지정하도록 허용하려면 어떻게해야합니까?

Baarn

사용자가 음의 nice 값으로 시스템에서 특정 프로세스를 실행하기를 원합니다. 이 특정 프로그램은 마인 크래프트 서버이고 명령 줄에 의존하여 서버를 제어하므로 프로세스를 백그라운드로 포크 할 수 없습니다.

내 현재 bash 스크립트는 다음과 같습니다 (중요한 부분).

sleep 10 && \
sudo renice -n $NICENESS $(ps -u $(id -u) -o "%p:%c" | sed -n "s/:java$//p") & \
java -Xmx8G -Xms2G -jar minecraft_server.jar nogui    

sleep단순히 renice. renice자체적으로 ps사용자 자신의 ID를 사용하여 Java 프로세스를 확인하는 데 사용합니다. 다른 사용자 아래에서 생성되는 다른 Java 인스턴스가있을 수 있지만 minecraft 서버는 자체 사용자 minecraft 하에서 실행됩니다 .

분명히 서버를 시작할 때마다 암호를 입력하고 싶지 않습니다.
에서 의 / etc /의 sudoers :

minecraft ALL = NOPASSWD: /etc/renice

이 작업을 수행하는 더 우아한 방법이 있습니까? 단순히 사용하는 nice것은 옵션이 아니며 NOPASSWD : 옵션 sudo nice bash과 함께 사용하면 큰 보안 문제가됩니다.

HBruijn

pam_limits.so 모듈이 도움이 될 수 있습니다.

특정 개별 사용자 및 그룹 또는 와일드 카드 또는 사용자 및 그룹 범위에 대한 특정 제한을 설정할 수 있습니다.

설정할 수있는 제한은 일반적으로 ulimit 설정이지만 동시 로그인 세션 수, 프로세스, CPU 시간, 기본 우선 순위 및 최대 우선 순위 (renice)에도 적용됩니다. 자세한 내용은 limits.conf 매뉴얼 페이지를 확인하십시오.

예를 들어 모든 프로세스가 증가 된 기본 우선 순위로 시작되도록 mindcraft 그룹을 구성하고 nice 및 renice 명령을 사용하여 우선 순위를 낮추는 대신 수동으로 중요한 작업의 우선 순위를 높일 수 있습니다.

# /etc/security/limits.conf
# increase default and max prio for members of the mindcraft group
@mindcraft   hard priority -10
@mindcraft   hard nice     -18   

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관