gpt4 book ai didi

ubuntu系统中nginx启动脚本

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 34 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ubuntu系统中nginx启动脚本由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下

#! /bin/sh ### BEGIN INIT INFO # Provides:          nginx # Required-Start:    $remote_fs $syslog # Required-Stop:     $remote_fs $syslog # Default-Start:     2 3 4 5 # Default-Stop:      0 1 6 # Short-Description: nginx init.d dash script for Ubuntu or other *nix. # Description:       nginx init.d dash script for Ubuntu or other *nix. ### END INIT INFO #------------------------------------------------------------------------------ # nginx - this Debian Almquist shell (dash) script, starts and stops the nginx #         daemon for Ubuntu and other *nix releases. # # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \ #               proxy and IMAP/POP3 proxy server.  This \ #               script will manage the initiation of the \ #               server and it's process state. # # processname: nginx # config:      /usr/local/nginx/conf/nginx.conf # pidfile:     /usr/local/nginx/logs/nginx.pid # Provides:    nginx # # Author:  Jason Giedymin #          <jason.giedymin AT gmail.com>. # # Version: 3.5.1 11-NOV-2013 jason.giedymin AT gmail.com # Notes: nginx init.d dash script for Ubuntu. # Tested with: Ubuntu 13.10, nginx-1.4.3 #  # This script's project home is: #   http://github.com/JasonGiedymin/nginx-init-ubuntu # #------------------------------------------------------------------------------ #                               MIT X11 License #------------------------------------------------------------------------------ # # Copyright (c) 2008-2013 Jason Giedymin, http://jasongiedymin.com # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #------------------------------------------------------------------------------ 。

  。

#------------------------------------------------------------------------------ #                               Functions #------------------------------------------------------------------------------ LSB_FUNC=/lib/lsb/init-functions 。

# Test that init functions exists test -r $LSB_FUNC || {     echo "$0: Cannot find $LSB_FUNC! Script exiting." 1>&2     exit 5 } 。

. $LSB_FUNC 。

#------------------------------------------------------------------------------ #                               Consts #------------------------------------------------------------------------------ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/nginx/sbin/nginx 。

PS="nginx" PIDNAME="nginx"                     #lets you do $PS-slave PIDFILE=$PIDNAME.pid                #pid file PIDSPATH=/usr/local/nginx/logs      #default pid location, you should change it 。

DESCRIPTION="Nginx Server..." 。

RUNAS=root                          #user to run as 。

SCRIPT_OK=0                         #ala error codes SCRIPT_ERROR=1                      #ala error codes TRUE=1                              #boolean FALSE=0                             #boolean 。

lockfile=/var/lock/subsys/nginx NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" 。

#------------------------------------------------------------------------------ #                               Simple Tests #------------------------------------------------------------------------------ 。

# Test if nginx is a file and executable test -x $DAEMON || {     echo "$0: You don't have permissions to execute nginx." 1>&2     exit 4 } 。

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

#set exit condition #set -e 。

#------------------------------------------------------------------------------ #                               Functions #------------------------------------------------------------------------------ 。

setFilePerms(){     if [ -f $PIDSPATH/$PIDFILE ]; then         chmod 400 $PIDSPATH/$PIDFILE     fi } 。

configtest() {     $DAEMON -t -c $NGINX_CONF_FILE } 。

getPSCount() {     return `pgrep -f $PS | wc -l` } 。

isRunning() {     if [ $1 ]; then         pidof_daemon $1         PID=$?

        if [ $PID -gt 0 ]; then             return 1         else             return 0         fi     else         pidof_daemon         PID=$?

        if [ $PID -gt 0 ]; then             return 1         else             return 0         fi     fi } 。

#courtesy of php-fpm wait_for_pid () {     try=0 。

    while test $try -lt 35 ; do         case "$1" in             'created')             if [ -f "$2" ]; then                 try=''                 break             fi             ;,

            'removed')             if [ ! -f "$2" ]; then                 try=''                 break             fi         esac 。

        try=`expr $try + 1`         sleep 1     done } 。

status(){     isRunning     isAlive=$?

    if [ "${isAlive}" -eq $TRUE ]; then         log_warning_msg "$DESCRIPTION found running with processes:  `pidof $PS`"         rc=0     else         log_warning_msg "$DESCRIPTION is NOT running."         rc=3     fi 。

    return } 。

removePIDFile(){     if [ $1 ]; then         if [ -f $1 ]; then             rm -f $1         fi     else         #Do default removal         if [ -f $PIDSPATH/$PIDFILE ]; then             rm -f $PIDSPATH/$PIDFILE         fi     fi } 。

start() {     log_daemon_msg "Starting $DESCRIPTION"     isRunning     isAlive=$?     if [ "${isAlive}" -eq $TRUE ]; then         log_end_msg $SCRIPT_ERROR         rc=0     else         start-stop-daemon --start --quiet --chuid \         $RUNAS --pidfile $PIDSPATH/$PIDFILE --exec $DAEMON \         -- -c $NGINX_CONF_FILE         setFilePerms         log_end_msg $SCRIPT_OK         rc=0     fi 。

    return } 。

stop() {     log_daemon_msg "Stopping $DESCRIPTION"     isRunning     isAlive=$?     if [ "${isAlive}" -eq $TRUE ]; then         start-stop-daemon --stop --quiet --pidfile $PIDSPATH/$PIDFILE 。

        wait_for_pid 'removed' $PIDSPATH/$PIDFILE 。

        if [ -n "$try" ]; then             log_end_msg $SCRIPT_ERROR             rc=0 # lsb states 1, but under status it is 2 (which is more prescriptive). Deferring to standard.         else             removePIDFile             log_end_msg $SCRIPT_OK             rc=0         fi     else         log_end_msg $SCRIPT_ERROR         rc=7     fi 。

    return } 。

reload() {     configtest || return $?

    log_daemon_msg "Reloading (via HUP) $DESCRIPTION" 。

    isRunning 。

    if [ $? -eq $TRUE ]; then         kill -HUP `cat $PIDSPATH/$PIDFILE`         log_end_msg $SCRIPT_OK         rc=0     else         log_end_msg $SCRIPT_ERROR         rc=7     fi 。

    return } 。

quietupgrade() {     log_daemon_msg "Peforming Quiet Upgrade $DESCRIPTION" 。

    isRunning     isAlive=$?     if [ "${isAlive}" -eq $TRUE ]; then         kill -USR2 `cat $PIDSPATH/$PIDFILE`         kill -WINCH `cat $PIDSPATH/$PIDFILE.oldbin`         isRunning         isAlive=$?

        if [ "${isAlive}" -eq $TRUE ]; then             kill -QUIT `cat $PIDSPATH/$PIDFILE.oldbin`             wait_for_pid 'removed' $PIDSPATH/$PIDFILE.oldbin             removePIDFile $PIDSPATH/$PIDFILE.oldbin 。

            log_end_msg $SCRIPT_OK             rc=0         else             log_end_msg $SCRIPT_ERROR             log_daemon_msg "ERROR! Reverting back to original $DESCRIPTION" 。

            kill -HUP `cat $PIDSPATH/$PIDFILE`             kill -TERM `cat $PIDSPATH/$PIDFILE.oldbin`             kill -QUIT `cat $PIDSPATH/$PIDFILE.oldbin` 。

            wait_for_pid 'removed' $PIDSPATH/$PIDFILE.oldbin             removePIDFile $PIDSPATH/$PIDFILE.oldbin 。

            log_end_msg $SCRIPT_OK             rc=0         fi     else         log_end_msg $SCRIPT_ERROR         rc=7     fi 。

    return } 。

terminate() {     log_daemon_msg "Force terminating (via KILL) $DESCRIPTION"     PIDS=`pidof $PS` || true 。

    [ -e $PIDSPATH/$PIDFILE ] && PIDS2=`cat $PIDSPATH/$PIDFILE` 。

    for i in $PIDS; do         if [ "$i" = "$PIDS2" ]; then             kill $i             wait_for_pid 'removed' $PIDSPATH/$PIDFILE             removePIDFile         fi     done 。

    log_end_msg $SCRIPT_OK     rc=0 } 。

destroy() {     log_daemon_msg "Force terminating and may include self (via KILLALL) $DESCRIPTION"     killall $PS -q >> /dev/null 2>&1     log_end_msg $SCRIPT_OK     rc=0 } 。

pidof_daemon() {     PIDS=`pidof $PS` || true 。

    [ -e $PIDSPATH/$PIDFILE ] && PIDS2=`cat $PIDSPATH/$PIDFILE` 。

    for i in $PIDS; do         if [ "$i" = "$PIDS2" ]; then             return 1         fi     done 。

    return 0 } 。

action="$1" case "$1" in     start)         start     stop)         stop     restart|force-reload)         stop         # if [ $rc -ne 0 ]; then         #     script_exit         # fi         sleep 1         start     reload)         $1     status)         status     configtest)         $1     quietupgrade)         $1     terminate)         $1     destroy)         $1     *)         FULLPATH=/etc/init.d/$PS         echo "Usage: $FULLPATH {start|stop|restart|force-reload|status|configtest|quietupgrade|terminate|destroy}"         echo "       The 'destroy' command should only be used as a last resort."          exit 3 esac 。

exit $rc 。

  。

最后此篇关于ubuntu系统中nginx启动脚本的文章就讲到这里了,如果你想了解更多关于ubuntu系统中nginx启动脚本的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com