के साथ चलाने पर काम करता है मैं पृष्ठभूमि में एक प्रक्रिया को एक डीमॉन के रूप में चलाने की कोशिश कर रहा हूं लेकिन यह केवल तब काम करता है जब मैं उपयोगकर्ता के रूप में रूट का उपयोग करता हूं।लिनक्स CentOS 7 पर पर्यवेक्षक केवल रूट
यही वह है जो मैंने किया था।
स्थापित पर्यवेक्षक के रूप में अपनी वेबसाइट पर बताया
$ yum -y install python-setuptools
$ easy_install supervisor
config फ़ोल्डरों
$ mkdir -p /etc/supervisor/conf.d
बनाया डिफ़ॉल्ट सेटिंग के साथ पॉप्युलेट
$ echo_supervisord_conf > /etc/supervisor/supervisord.conf
एक नया उपयोगकर्ता जोड़ने
$ useradd gogopher
CentOS 7 पर
यह स्वचालित रूप से प्रारंभ करने के लिए मैं इस
$ vim /usr/lib/systemd/system/supervisord.service
इतना है कि यह रिबूट पर शुरू होता है अब मैं इसे सक्षम कर सकते हैं नीचे
[Unit]
Description=supervisord - Supervisor process control system for UNIX
Documentation=http://supervisord.org
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecReload=/usr/bin/supervisorctl reload
ExecStop=/usr/bin/supervisorctl shutdown
User=gogopher
[Install]
WantedBy=multi-user.target
कोड जोड़ करना था। यह सब ठीक काम करता है।
$ systemctl enable supervisord
$ systemctl start supervisord
$ systemctl status supervisord
ठीक
संपादन कॉन्फ़िग फ़ाइल एक साधारण प्रोग्राम
जोड़ने फ़ाइल[include]
files = /etc/supervisor/conf.d/*.conf
के अंत में जोड़ने conf.d फ़ोल्डर
$ vim /etc/supervisor/supervisord.conf
से फ़ाइलों को शामिल करने
$ vim /etc/supervisor/conf.d/goapp.conf
[program:main]
command=/srv/www/websiteurl.com/bin/main
autostart=true
autorestart=true
startretries=10
user=gogopher
$ systemctl पुनः आरंभ
कोई त्रुटि supervisord, लेकिन इस प्रक्रिया
काम नहीं करता है अगर मैं रिबूट कुछ नहीं होता
$ systemctl status supervisord
से पता चलता है कि यह supervisord नहीं बल्कि डेमॉन कार्यक्रम चल रहा है।
अगर मैं
$ supervisorctl reload
मैं अगर मैं
$ supervisorctl status main
चलाने त्रुटि
error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 571
मिल रहा त्रुटि मिलती है चलाने
http://localhost:9001 refused connection
मैंने पहले ही सेलिनक्स को अक्षम कर दिया है।
लेकिन अजीब हिस्सा यह है कि यदि मैं दोनों को रूट में बदलता हूं, तो यह काम करता है।
निष्पादन योग्य उपयोगकर्ता समूह और अन्य द्वारा निष्पादित करने में सक्षम है।
तो मुझे नहीं पता कि क्या हो रहा है। मैंने सुना है कि मुझे रूट का उपयोग उपयोगकर्ता के रूप में नहीं करना चाहिए जो सुरक्षा कारणों से वेबसर्वर चला रहा है।
आप इसे हल कर लिया है के रूप में यह रजिस्टर? यदि हां, तो कैसे? –
https://imgs.xkcd.com/comics/wisdom_of_the_ancients.png – Basil