사용자가 시스템에서 특정 좋은 프로세스를 음수 값으로 실행하기를 원합니다. 이 특정 프로그램은 마인 크래프트 서버이므로 서버를 제어하기 위해 명령 줄에 의존하기 때문에 프로세스를 배경으로 포크 할 수는 없습니다.
내 현재 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
더 우아한 방법이 있습니까? NOPASSWD 와 함께 단순히 사용하는 nice
것은 옵션이 아닙니다 . 옵션은 큰 보안 문제입니다.sudo nice bash
nice
보이지 않는 것 같습니다-
.