मैं चाहता हूं कि एक उपयोगकर्ता नकारात्मक अच्छा मूल्य के साथ सिस्टम पर एक विशिष्ट प्रक्रिया चलाए। मैं केवल पृष्ठभूमि के लिए प्रक्रिया को कांटा नहीं कर सकता क्योंकि यह विशिष्ट कार्यक्रम एक मिनिक्राफ्ट सर्वर है और मैं सर्वर को नियंत्रित करने के लिए कमांड लाइन पर भरोसा करता हूं।
मेरी वर्तमान बैश स्क्रिप्ट इस तरह दिखती है (महत्वपूर्ण हिस्सा):
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है एक जावा प्रक्रिया के लिए जाँच करने के लिए उपयोगकर्ताओं को स्वयं आईडी का उपयोग करता है। विभिन्न उपयोगकर्ताओं के अंतर्गत जावा स्पॉनिंग के अन्य उदाहरण हो सकते हैं, लेकिन मिनीक्राफ्ट सर्वर अपने स्वयं के उपयोगकर्ता मिनीक्राफ्ट के तहत चलता है ।
मैं स्पष्ट रूप से हर बार जब मैं सर्वर शुरू करता हूं, तो पासवर्ड दर्ज नहीं करना चाहता।
से / etc / sudoers :
minecraft ALL = NOPASSWD: /etc/renice
क्या ऐसा करने का एक और अधिक सुरुचिपूर्ण तरीका है? बस NOPASSWD के साथ संयोजन में उपयोग niceकरना एक विकल्प नहीं है : विकल्प एक महान सुरक्षा मुद्दा होगा।sudo nice bash
niceऐसा करना प्रतीत नहीं होता है, मुझे दोनों का उपयोग करके सेट करना पड़ा-।