मैं गैर-रूट उपयोगकर्ता के रूप में init स्क्रिप्ट कैसे चला सकता हूं?


2

मैंने इस फ़ाइल को /etc/init/proxyserver.conf में डाला है जो स्टार्टअप पर इस स्क्रिप्ट को निष्पादित करती है (Ubuntu 11.10):

description "Run code for ProxyServer"
start on runlevel [23]

script
    cd /home/mark/selenium-client
    exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111
end script

यह ठीक काम करता है लेकिन अगर मैं इसे टर्मिनल में निष्पादित करता हूं:

ps aux | grep selenium

यह स्क्रीन लौटाता है:

root  783   0.0   2.3  680584   23688   ?   Ssl   Apr18   4:45   java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

लेकिन मैं स्क्रिप्ट को गैर-रूट उपयोगकर्ता के रूप में चलाना चाहता हूं, मैं यह कैसे कर सकता हूं?

धन्यवाद!


कैसे उपयोग के बारे में su जो भी आप चाहते हैं उसे चलाने के लिए। आपको अभी भी लगता है कि मुझे लगता है कि स्थापित करने के लिए रूट की आवश्यकता होगी
B T

जवाबों:


5

आप इसे में चला सकते हैं crontab @reboot विकल्प के साथ

crontab -e उपयोगकर्ता crontab खोलने के लिए।

लाइन जोड़ें @reboot /path/to/script और इसे उस उपयोगकर्ता के रूप में रिबूट पर अपनी स्क्रिप्ट शुरू करनी चाहिए

के कुछ और उदाहरण क्रोन का उपयोग यहाँ


2

आप उदा। का उपयोग कर सकते हैं

sudo -u mark exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

एक निर्दिष्ट उपयोगकर्ता के रूप में प्रक्रिया को निष्पादित करने के लिए रूट विशेषाधिकार का उपयोग करने के लिए।


संपादित करें: या शायद

exec sudo -u mark java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

किस पर निर्भर करता है upstart चाहता है (मैं खुद इसका इस्तेमाल नहीं करता)।


2

Upstart में, का उपयोग करें setuid कीवर्ड:

description "Run code for ProxyServer"
start on runlevel [23]

 समुच्चय चिह्न  chdir / होम / मार्क / सेलेनियम-क्लाइंट
java -jar सेलेनियम-सर्वर-स्टैंडअलोन-2.20.0.jar -role हब -पोर्ट 1111 

( script अनावश्यक है।)

वैकल्पिक रूप से, एक बनाएँ उपयोगकर्ता की नौकरी एक प्रणाली के बजाय।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.