Bir kullanıcının sistemde negatif bir değeri olan belirli bir işlemi çalıştırmasını istiyorum. Bu özel program bir minecraft sunucusu olduğu için işlemi arka plana çatallayamıyorum ve sunucuyu kontrol etmek için komut satırına güveniyorum.
Mevcut bash komut dosyam şöyle görünüyor (önemli kısım):
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
basitçe yürütülmesini geciktirir renice
. renice
kendisi ps
kullanıcının kendi kimliğini kullanarak bir java işlemi kontrol etmek için kullanır . Farklı kullanıcılar altında java yumurtlamanın başka örnekleri olabilir, ancak minecraft sunucusu kendi kullanıcı minecraft'ı altında çalışır .
Sunucuyu her başlattığımda bir şifre girmek istemiyorum.
den / etc / sudoers :
minecraft ALL = NOPASSWD: /etc/renice
Bunu yapmanın daha zarif bir yolu var mı? Sadece kullanmak nice
bir seçenek değildir sudo nice bash
, NOPASSWD ile birlikte : seçenek büyük bir güvenlik sorunu olacaktır.
nice
gibi görünmüyor, her ikisini de ayarlamak zorunda kaldım-
.