स्टार्टअप पर Nginx लॉन्च करें


12

मैं nginx, और पैसेंजर को स्थापित करने और चलाने में सक्षम था, लेकिन जब भी मैं अपने सर्वर को रिबूट करता हूं, तो मैं nginx नहीं पा सकता हूं। Nginx प्रक्रिया शुरू करने के लिए मैं sudo / opt / nginx / sbin / nginx में टाइप करता हूं । मेरी समझ से कुछ भी, जिसे मैं /etc/init.d में डालूंगा, ubuntu hardy के साथ निष्पादित किया जाएगा। क्या किसी को उस कमांड का पता है जो इस कमांड लाइन कॉल की नकल करेगा?

sudo / opt / nginx / sbin / nginx


यदि आप apt-get install nginx के माध्यम से nginx स्थापित करते हैं, तो यह "स्वचालित रूप से" बूट समय पर शुरू होता है (लेकिन ऑटो शुरू में खुद को शुरू नहीं करता है, विषम ...)
rogerdpack

जवाबों:


11

जानकारी के लिए धन्यवाद, अगर कोई कदम से कदम निर्देश चाहता है। /Etc/init.d पर जाएं और चलाएं sudo nano nginx-passenger.sh, फिर इस कोड में पेस्ट करें:

#!/bin/bash
# this script starts the nginx process attached to passenger
sudo /opt/nginx/sbin/nginx

सुरषित और बहार। टाइप करके फ़ाइल को निष्पादन योग्य बनाएं sudo chmod +x /etc/init.d/nginx-passenger.sh। आप यह देखने के लिए परीक्षण कर सकते हैं कि क्या स्क्रिप्ट टाइप करके काम करता है sudo /etc/init.d/nginx-passenger.sh, यह स्क्रिप्ट में सभी कोड चलाएगा। सत्यापित करें कि यह जारी रखने से पहले nginx लॉन्च करता है।

तब sudo update-rc.d nginx-passenger.sh defaults/etc/init.d निर्देशिका में रहते हुए भी चलाएँ । एक बार यह सब जगह हो जाने पर, अपने सर्वर को रिबूट करें और ngnix को अब स्टार्टअप पर स्वचालित रूप से स्‍पॉट किया जाना चाहिए


प्रत्यक्ष निर्देशों के लिए धन्यवाद। यही StackExchange के लिए है।
रियान

10

/etc/init.d, स्क्रिप्ट को लाइव करने के लिए केवल स्थान है। लेकिन एक स्क्रिप्ट होने से कुछ भी अपने आप नहीं होता है।

Init सिस्टम /etc/init.d फ़ोल्डर में स्क्रिप्ट के लिए /etc/rc#.d निर्देशिका में प्रतीकात्मक लिंक का उपयोग करता है। प्रतीकात्मक लिंक के नाम को एस के साथ शुरू करने के लिए शुरुआत विकल्प के साथ स्क्रिप्ट को चलाने के लिए और के को स्टॉप विकल्प को चलाने के लिए प्राथमिकता संख्या और उसके बाद स्क्रिप्ट का नाम होना चाहिए।

अधिक जानकारी के लिए निम्नलिखित देखें
/etc/init.d/README
/etc/rc1.d/README
/etc/rc2.d/README

वैकल्पिक रूप से आप अपना कमांड डाल सकते हैं जिसे आप /etc/rc.local स्क्रिप्ट में चलाना चाहते हैं जो सिस्टम बूट के बाद चलाया जाता है और /etc/rc2.d/ फ़ोल्डर में सभी स्क्रिप्ट को निष्पादित करता है।


1
/Etc/init.d/README फ़ाइल का Btw आपको निर्देश देता है कि /etc/rc?.d में प्रतीकात्मक लिंक बनाने के लिए अपडेट-rc.d कमांड का उपयोग करें ताकि उपरोक्त उत्तर आपको यह बता सके कि वह कमांड क्या कर रहा है। और आप अपडेट- rc.d कमांड पर अधिक जानकारी के लिए मैन अपडेट- rc.d चला सकते हैं।

heh अपडेट-rc.d कमांड मैनपेज की तरह दिखता है जो आपको विभिन्न रन-स्तरों पर चलाए जा रहे init स्क्रिप्ट को प्रबंधित करने के लिए sysv-rc-conf या bum का उपयोग करना चाहिए। मुझे लगता है कि मैं /etc/init.d/README पर एक बग दर्ज करूँगा
3dinfluence

ऐसा लगता है कि यह अगले उबंटू रिलीज में पहले ही सही हो गया है। अपडेट- rc.d मैन पेज अब sysv-rc-conf या bum का सुझाव नहीं देता है।
डीइंफ्लुएंस

6

बूट पर nginx शुरू करने के लिए: sudo systemctl enable nginx (इसे तुरंत शुरू नहीं करें)

नगीनक्स शुरू करने के लिए: sudo system start nginx


आह, आधुनिक उत्तर (2019 के अनुसार आधुनिक, वह है)। बटरहब साइट पर आपका स्वागत है :)
kubanczyk

धन्यवाद @kubanczyk :)
बेन बी

2

मैं मान रहा हूं कि आपने नगनेक्स स्थापित किया है

यदि आपके पास नेनेक्स चल रहा है तो प्रक्रिया का उपयोग बंद करें:

  • sudo killcat /usr/local/nginx/logs/nginx.pid

इित पट

नीचे दिखाई गई स्क्रिप्ट उबंटू 10.04 इंस्टॉलेशन से है और हमारे नगीनेक्स के कस्टम इंस्टॉल को ध्यान में रखने के लिए अनुकूलित की गई है। कृपया स्क्रिप्ट बनाएं:

sudo nano /etc/init.d/nginx

रिक्त फ़ाइल के अंदर निम्नलिखित रखें:

#! /bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /usr/local/nginx/logs/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /usr/local/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
          --exec $DAEMON
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

निष्पादन के रूप में init फ़ाइल एक शेल स्क्रिप्ट है, इसे निष्पादन योग्य अनुमतियों की आवश्यकता है।

हम उन्हें इस तरह सेट करते हैं:

sudo chmod +x /etc/init.d/nginx

अपडेट-आरसी अब हमारे पास आधार स्क्रिप्ट तैयार है, हमें इसे डिफ़ॉल्ट रन स्तरों में जोड़ने की आवश्यकता है:

sudo /usr/sbin/update-rc.d -f nginx defaults 

आउटपुट इस के समान होगा:

sudo /usr/sbin/update-rc.d -f nginx defaults
 Adding system startup for /etc/init.d/nginx ...
   /etc/rc0.d/K20nginx -> ../init.d/nginx
   /etc/rc1.d/K20nginx -> ../init.d/nginx
   /etc/rc6.d/K20nginx -> ../init.d/nginx
   /etc/rc2.d/S20nginx -> ../init.d/nginx
   /etc/rc3.d/S20nginx -> ../init.d/nginx
   /etc/rc4.d/S20nginx -> ../init.d/nginx
   /etc/rc5.d/S20nginx -> ../init.d/nginx

अब हम nginx को किसी अन्य सेवा की तरह ही शुरू, बंद और पुनः आरंभ कर सकते हैं:

sudo /etc/init.d/nginx start
...
sudo /etc/init.d/nginx stop
...
sudo /etc/init.d/nginx restart

स्क्रिप्ट को रिबूट पर भी बुलाया जाएगा ताकि नगनेक्स स्वचालित रूप से शुरू हो जाएगा।



1
मैंने ubuntu 17.10 के साथ पाया मुझे निर्देशिका के sudo systemctl enable nginxअंदर से होना था /etc/init.d
एरिक



0

संदर्भ के लिए: मैंने बस http://library.linode.com/frameworks/ruby-on-rails-nginx/ubuntu-10.10-maverick पर लिनोदे द्वारा प्रदान किए गए निर्देश और स्क्रिप्ट का अनुसरण किया


सर्वर दोष में आपका स्वागत है! हालांकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक हिस्सों को यहां शामिल करना बेहतर होगा , और संदर्भ के लिए लिंक प्रदान करना होगा।
Freiheit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.