Nginx boot script

Posted by HoLin on January 25th, 2008 filed in 部署与优化

目的:让nginx随服务器启动
操作系统:

1
2
3
<code>
Linux localhost.localdomain 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux
</code>

以下内容保存为文件nginx到/etc/init.d/目录下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<code>
#! /bin/sh
# chkconfig: - 58 74
# description: nginx is the Nginx daemon.
 
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run 'sudo update-rc.d nginx defaults', or use the appropriate command on your
# distro.
#
# Author:  Ryan Norbauer
# Modified:     Geoffrey Grosenbach http://topfunky.com
# Modified:     David Krmpotic http://davidhq.com
 
set -e
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/nginx.conf
 
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/nginx.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
 
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
 
d_start() {
  $DAEMON -c $CONFIGFILE || echo -en "\n already running"
}
 
d_stop() {
  kill -QUIT `cat $PIDFILE` || echo -en "\n not running"
}
 
d_reload() {
  kill -HUP `cat $PIDFILE` || echo -en "\n can't reload"
}
 
case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    d_start
        echo "."
  ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
        echo "."
  ;;
  reload)
    echo -n "Reloading $DESC configuration..."
    d_reload
        echo "."
  ;;
  restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    # One second might not be time enough for a daemon to stop,
    # if this happens, d_start will fail (and dpkg will break if
    # the package is being upgraded). Change the timeout if needed
    # be, or change d_stop to have start-stop-daemon use --retry.
    # Notice that using --retry slows down the shutdown process
somewhat.
    sleep 1
    d_start
    echo "."
  ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" &gt;&amp;2
    exit 3
  ;;
esac
 
exit 0
</code>

然后

1
sudo chmod +x nginx

然后

1
sudo /sbin/chkconfig --level 345 nginx on

这里说明需要说明一下,
# chkconfig: - 58 74
# description: nginx is the Nginx daemon.
脚本中这两句注释一定要的,表明是chkconfig支持的格式。不然会有类似下面的提示:
service nginx does not support chkconfig
进一步可参考这里

完成,reboot就可以看到nginx自动启动。

Ubuntu可参考:nginx.sh这里

Update(2008-1-31):关于chkconfig的更多信息,看这里

Related posts:

  1. Nginx + Passenger 开发Rails应用 在Rails开发过程中,如果同时开发多个项目,需要经常切换,使用 script/server 去启动应用会比较麻烦,而采用nginx(或apache) + passenger可以节约时间,提高效率。 1、安装passenger 下载Passenger,目前最新的版本为2.2.2,并解压到passenger的安装目录: tar xzvf passenger-2.2.2.tar.gz...
  2. 使用Nginx和Mongrel Cluster部署Rails应用 本文介绍在Linux上以Nginx为前端、Mongrel Cluster为后端部署Rails应用的方法及步骤。 平台:Ubuntu 7.10 (Gutsy Gibbon) Nginx简介Nginx是由俄罗斯人Igor Sysoev开发的一款HTTP服务器。它有以下特点: 轻量小巧(相对于Apache等) 快速高效...
  3. Nagios中用飞信发送报警信息 近期由于飞信的API变更,原先的Linux版本fetion程序不能再用来发送信息了。而由 flyerhzm 开发的rfetion更新较快,可用来配合Nagios的报警信息发送。 rfetion是基于ruby的一个飞信客户端工具,有命令行的发送模式。使用前,需事先安装好 ruby,及rubygem,相关安装过程在网上有很多。 安装好ruby及rubygem后,可通过如下两行命令来安装rfetion: gem sources -a http://gemcutter.org...
  4. shoulda on rails 在新项目中配置shoulda rails shoulda_demo -d mysql cd shoulda_demo/ script/plugin install git://github.com/thoughtbot/shoulda.git...
  5. Satellite: a self-syncing distributed wiki 介绍 satellite is a self-syncing distributed wiki with file uploads...

Related posts brought to you by Yet Another Related Posts Plugin.

Leave a Comment