2015-05-05 26 views
5

Tôi đang gặp phải vấn đề khiến tôi phát điên. Tôi đang cố gắng để tạo ra một công việc Upstart Ubuntu 15.04, mà sẽ bắt đầu máy chủ uWSGI (uWSGI phiên bản 2.0.7-debian) chạy một ứng dụng Django.Khởi động dịch vụ uWSGI không hoạt động âm thầm

Tôi đã định cấu hình dịch vụ như sau và cố gắng bắt đầu công việc bằng cách phát lệnh $ sudo service uwsgi start. Không có đầu ra trong các tệp nhật ký, không có tệp ổ cắm nào được tạo và không có lỗi.

# file: /etc/init/uwsgi.conf 

description "uWSGI server" 

start on runlevel [2345] 
stop on runlevel [!2345] 

exec /usr/bin/uwsgi --ini /srv/configs/uwsgi.ini 

service uwsgi status nói

● uwsgi.service - LSB: Start/stop uWSGI server instance(s) 
Loaded: loaded (/etc/init.d/uwsgi) 
Active: active (exited) since Tue 2015-05-05 09:40:08 EEST; 1s ago 
    Docs: man:systemd-sysv-generator(8) 
Process: 21405 ExecStop=/etc/init.d/uwsgi stop (code=exited, status=0/SUCCESS) 
Process: 21460 ExecStart=/etc/init.d/uwsgi start (code=exited, status=0/SUCCESS) 

May 05 09:40:08 web-2 systemd[1]: Starting LSB: Start/stop uWSGI server instance(s)... 
May 05 09:40:08 web-2 uwsgi[21460]: * Starting app server(s) uwsgi 
May 05 09:40:08 web-2 uwsgi[21460]: ...done. 
May 05 09:40:08 web-2 systemd[1]: Started LSB: Start/stop uWSGI server instance(s). 

Ứng dụng uWSGI được cấu hình như

[uwsgi] 

uid = www-data 
gid = www-data 
socket = /srv/sockets/uwsgi.sock 
chmod-socket = 666 
master = true 
processes = 4 
enable-threads = true 
plugins = python 
chdir = /srv/sites/current 
module = wsgi:application 
virtualenv = /srv/environments/current 
logto = /srv/logs/uwsgi.log 
logfile-chown = true 
touch-reload = /srv/sites/current/wsgi.py 

Dịch vụ này bắt đầu tốt đẹp và mọi thứ hoạt động ok nếu dịch vụ này được bắt đầu trực tiếp, ví dụ bằng cách ra lệnh: sudo -u www-data /usr/bin/uwsgi --ini /srv/configs/uwsgi.ini

Đối với thư mục ổ cắm và thư mục tệp nhật ký Tôi đã đặt các quyền thoải mái nhất.

Vì vậy, tôi đang thua lỗ. Phải làm gì tiếp theo?

+1

Từ những gì tôi đã thấy về systemd trong Ubuntu 15.04, nó có thể không đăng nhập vào bất kỳ tệp/var/log theo mặc định. Và nó có thể lưu trữ các tập tin cấu hình 'đơn vị' của nó ở đâu đó bên cạnh/etc/init: Tôi thấy/lib/systemd/system trong tài liệu và đầu ra trạng thái của bạn hiển thị /etc/init.d. Vì vậy, có lẽ nó đang sử dụng một tập tin cấu hình dịch vụ khác nhau mà đặt các tập tin ổ cắm ở một vị trí bạn không nhìn vào. Tôi nói điều này vì đầu ra trạng thái của bạn cho biết systemd _thinks_ uwsgi đang chạy. Bạn có thể tìm quá trình với 'ps auxww | wsgi'. – nmgeek

+0

'ps aux | grep wsgi' chỉ hiển thị dòng grep, vì vậy các quy trình không chạy. Ngoài ra, tôi đã cố gắng tạo tệp uwsgi.service vào/lib/systemd/system với các hướng dẫn này, http://uwsgi-docs.readthedocs.org/en/latest/Systemd.html nhưng 'sudo systemctl status uwsgi.service' báo cáo cùng một điều hơn 'trạng thái dịch vụ uwsgi'. – samuke

+1

Tôi rất vui vì đã cung cấp _some_ loại trợ giúp. Bạn có nên đăng câu trả lời của riêng mình cho câu hỏi không? – nmgeek

Trả lời

6

Nhờ nhận xét của nmgeeks, tôi bắt đầu tìm kiếm các địa điểm khác nơi uWSGI được định cấu hình.

Trong khi cố gắng di chuyển mọi thứ ứng dụng của chính chúng ta liên quan theo /srv Tôi đã xóa thư mục /run/uwsgi, trong đó uWSGI đang cố gắng tạo tệp PID.

Bạn có thể tìm thấy tham chiếu tại /usr/share/uwsgi/conf/default.ini.

Quá xấu uWSGI không tạo ra bất kỳ lỗi nào trong tình huống này khiến tôi thất vọng trong một ngày.

0

Tôi chỉ muốn thêm một số chi tiết bổ sung. Trong trường hợp của tôi, tôi không xóa bất kỳ điều gì, nhưng vì một số lý do, systemd không thể tạo thư mục /run/uwsgi. Vì vậy, tôi đã làm echo "/run/uwsgi 0755 www-data www-data -" > /etc/tmpfiles.d/uwsgi.conf. Sau đó, tôi khởi động lại máy ảo của mình (tôi không tìm cách áp dụng các thay đổi này mà không cần khởi động lại) và uwsgi bắt đầu hoạt động!

Vâng, quá xấu mà uWSGI không tạo ra bất kỳ lỗi nào trong tình huống này.

Các vấn đề liên quan