Saya ingin pengguna menjalankan proses tertentu pada sistem dengan nilai bagus negatif. Saya tidak bisa begitu saja memotong proses ke latar belakang karena program khusus ini adalah server minecraft dan saya mengandalkan baris perintah untuk mengontrol server.
Skrip bash saya saat ini terlihat seperti ini (bagian penting):
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
hanya menunda eksekusi renice
. renice
itu sendiri digunakan ps
untuk memeriksa proses java menggunakan ID pengguna sendiri. Mungkin ada contoh lain dari pemijahan java di bawah pengguna yang berbeda, tetapi server minecraft berjalan di bawah minecraft penggunanya sendiri .
Saya jelas tidak ingin memasukkan kata sandi setiap kali saya memulai server.
dari / etc / sudoers :
minecraft ALL = NOPASSWD: /etc/renice
Apakah ada cara yang lebih elegan untuk melakukan ini? Cukup menggunakan nice
bukanlah suatu pilihan, sudo nice bash
dalam kombinasi dengan opsi NOPASSWD: akan menjadi masalah keamanan yang hebat.
sumber
nice
sepertinya tidak melakukannya, saya harus mengatur keduanya, menggunakan-
.priority
ke -10 dannice
ke -15 dan saya selalu mendapatkan "izin ditolak" bahkan ketika saya mencoba menggunakan "bagus -n -2" pada sesuatu. Apakah saya harus reboot? Saya baru saja keluar dan masuk lagi sesuai saran ini .priority
pengaturan memang memiliki efek, tetapinice
pengaturan hanya memungkinkan saya untuk mengurangi prioritas. Ketika saya memulai sesuatu dengan prioritas default, sekarang -10. Saya bisarenice
proses ke -9 tapi kemudian tidak bisarenice
kembali ke -10.hard
yang menyebabkan masalah. Saya mengubahnya sebagai-
gantinya dan semua berfungsi dengan baik sekarang. Jawaban ini membantu saya sampai ke dasarnya. Saya pikir masalahnya adalah bahwa saya memiliki batas lunak yang menghalangi, mungkin mengalahkan batas keras entah bagaimana. Pokoknya,-
bukannyahard
memperbaikinya untukku.Menggunakan
renice
tanpasudo
akan mustahil. Saya mengutip darirenice(1)
halaman manual:sumber