2012-03-20 29 views
6

Tôi đang chạy Fedora 16 32bit và tôi đã cài đặt hành khách với nginx (tùy chọn 1 trong khi cài đặt, mọi thứ đã được xử lý cho tôi). Cài đặt đã ổn, nhưng nginx không được đăng ký làm dịch vụ.Hành khách với NginX không được đăng ký làm dịch vụ trong Fedora

Cách duy nhất tôi có thể chạy trực tiếp thông qua /opt/nginx/sbin/nginx. Không có khả năng chạy nó qua /etc/init.d/nginx

Có cách nào để đăng ký dịch vụ đó dưới dạng dịch vụ không?

+0

https://github.com/johnantoni/nginx_init_script – manzhikov

Trả lời

5

Tạo tập tin /etc/systemd/system/nginx.service với nội dung:

[Unit] 
Description=Nginx 
After=syslog.target network.target 

[Service] 
Type=forking 
ExecStart=/usr/local/nginx/sbin/nginx 
ExecReload=/usr/local/nginx/sbin/nginx -s reload 

[Install] 
WantedBy=multi-user.target 

Sau đó bạn có thể kiểm soát nó với:

sudo systemctl stop|start|restart nginx.service 

hoặc

sudo service nginx stop|start|restart 

Để kích hoạt nginx để bắt đầu khi khởi động bạn có thể chạy sudo systemctl enable nginx.service.

+0

Đối với các dịch vụ tìm kiếm như nginx, bạn nên đưa tùy chọn 'PIDFile =' vào tệp dịch vụ của bạn. Vì vậy, ví dụ trên sẽ bao gồm 'PIDFile =/var/run/nginx.pid' sau dòng' Type = forking'. Để biết thêm thông tin, hãy xem: [http://0pointer.de/public/systemd-man/systemd.service.html](http://0pointer.de/public/systemd-man/systemd.service.html) – Nick

0

Tôi đã thực hiện "hack" sau đây. Đã cài đặt nginx mới được biên dịch với bộ phận Hỗ trợ hành khách, kiểm tra xem nó có chạy đúng cách khi khởi chạy từ dòng lệnh hay không, sau đó cài đặt nginx với sudo yum install nginx (đó là CentOS).

Và cuối cùng, tôi đã tìm kiếm các tệp *nginx* trong thư mục /etc và được thay thế tại đó /usr/sbin/nginx đến /opt/nginx/sbin/nginx. Sau đó khởi động lại máy và có thể bắt đầu nginx với sudo service nginx start.

Chắc chắn có một cách thanh lịch hơn để thực hiện việc này, nhưng tôi lười biếng để nghiên cứu cách thức trong mỗi dịch vụ phân phối Linux được đăng ký.

Ngoài ra tôi thay thế có những con đường cho

  • nginx.conf
  • nginx.pid (${prog}.pid) - nếu không nó sẽ không thể dừng lại nginx
Các vấn đề liên quan