Tôi đang cố gắng chạy một tiến trình trong nền dưới dạng deamon nhưng nó chỉ hoạt động khi tôi sử dụng root làm người dùng.Giám sát trên linux CentOS 7 chỉ hoạt động khi chạy với root
Đây là những gì tôi đã làm.
giám sát cài đặt như đã nói trên trang web của họ
$ yum -y install python-setuptools
$ easy_install supervisor
tạo các thư mục cấu hình
$ mkdir -p /etc/supervisor/conf.d
cư với các thiết lập mặc định
$ echo_supervisord_conf > /etc/supervisor/supervisord.conf
thêm người dùng mới
$ useradd gogopher
trên CentOS 7 để làm cho nó tự khởi động tôi phải làm điều này
$ vim /usr/lib/systemd/system/supervisord.service
thêm vào mã bên dưới
[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
bây giờ tôi có thể kích hoạt nó để nó bắt đầu từ ngày khởi động lại. tất cả điều này hoạt động tốt.
$ systemctl enable supervisord
$ systemctl start supervisord
$ systemctl status supervisord
OK
chỉnh sửa tập tin cấu hình để bao gồm các file từ thư mục conf.d
$ vim /etc/supervisor/supervisord.conf
thêm vào cuối tập tin
[include]
files = /etc/supervisor/conf.d/*.conf
thêm một chương trình đơn giản
$ 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 restart supervisord
không có lỗi, nhưng quá trình này không hoạt động
nếu tôi khởi động lại không có gì xảy
$ systemctl status supervisord
cho thấy rằng nó supervisord đang chạy nhưng không phải là chương trình daemon.
nếu tôi chạy
$ supervisorctl reload
tôi nhận được lỗi
error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 571
nếu tôi chạy
$ supervisorctl status main
tôi nhận được lỗi
http://localhost:9001 refused connection
Tôi đã vô hiệu hóa selinux.
nhưng phần lạ là nếu tôi thay đổi cả hai thư mục đó thành thư mục gốc, nó hoạt động.
Tệp thực thi có thể được thực hiện bởi nhóm người dùng và những người khác.
Vì vậy, tôi không biết điều gì đang diễn ra. Tôi đã nghe nói rằng tôi không nên sử dụng gốc khi người dùng đang chạy máy chủ web vì lý do bảo mật.
bạn đã giải quyết nó? Nếu có, làm thế nào? –
https://imgs.xkcd.com/comics/wisdom_of_the_ancients.png – Basil