Linux(CentOS)下设置nginx开机自动启动和chkconfig管理
Nginx 是一个很强大的高性能Web和反向代理服务器。虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便。下面介绍在Linux下安装后,如何设置开机自启动。
首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:
vim /etc/init.d/nginx
在脚本中添加如下命令:
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() {# make required directoriesuser=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`if [ -z "`grep $user /etc/passwd`" ]; thenuseradd -M -s /bin/nologin $userfioptions=`$nginx -V 2>&1 | grep 'configure arguments:'`for opt in $options; doif [ `echo $opt | grep '.*-temp-path'` ]; thenvalue=`echo $opt | cut -d "=" -f 2`if [ ! -d "$value" ]; then# echo "creating" $valuemkdir -p $value && chown -R $user $valuefifidone } start() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6make_dirsecho -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval } stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval } restart() {configtest || return $?stopsleep 1start } reload() {configtest || return $?echo -n $"Reloading $prog: "killproc $nginx -HUPRETVAL=$?echo } force_reload() {restart } configtest() {$nginx -t -c $NGINX_CONF_FILE } rh_status() {status $prog } rh_status_q() {rh_status >/dev/null 2>&1 } case "$1" instart)rh_status_q && exit 0$1;;stop)rh_status_q || exit 0$1;;restart|configtest)$1;;reload)rh_status_q || exit 7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q || exit 0;;*)echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit 2 esac
这个脚本其实也不是我写的,谁写的呢,nginx官方写的,脚本地址:http://wiki.nginx.org/RedHatNginxInitScript ,不过要注意,如果你是自定义编译安装的nginx,需要根据您的安装路径修改下面这两项配置:
nginx=”/usr/sbin/nginx” 修改成nginx执行程序的路径。
NGINX_CONF_FILE=”/etc/nginx/nginx.conf” 修改成配置文件的路径。
保存脚本文件后设置文件的执行权限:
chmod a+x /etc/init.d/nginx
然后,就可以通过该脚本对nginx服务进行管理了:
/etc/init.d/nginx start /etc/init.d/nginx stop
注意:一定要注意nginx的编码格式。不然会出现以下错误:
[root@iZ2ze7dyjfik9i0bgl5o1cZ bin]# /etc/init.d/nginx start -bash: /etc/init.d/nginx: /bin/sh^M: bad interpreter: No such file or directory
解决方法:
首先要确保文件有可执行权限: cd /etc/init.d/ chmod a+x nginx然后修改文件格式: vim nginx利用如下命令查看文件格式 :set ff 或 :set fileformat 可以看到如下信息 fileformat=dos 或 fileformat=unix 利用如下命令修改文件格式 :set ff=unix 或 :set fileformat=unix :wq (存盘退出)
使用chkconfig进行管理
上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便,比如要设置nginx开机启动等。这时可以使用chkconfig来设置。
先将nginx服务加入chkconfig管理列表:
chkconfig --add /etc/init.d/nginx
加完这个之后,就可以使用service对nginx进行启动,重启等操作了。
service nginx start service nginx stop
设置终端模式开机启动:
chkconfig nginx on
chkconfig命令的使用方法,就不多数啦,可以自行搜索
另外这里还有一个网友分享的脚本(脚本地址:http://blog.163.com/qsc0624@126/blog/static/140324073201312734548701/):
#!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0.2 version. # chkconfig: - 85 15 # description: Nginx is a high-performance web and proxy server. # It has a lot of features, but it's not for everyone. # processname: nginx # pidfile: /var/run/nginx.pid # config: /usr/local/nginx/conf/nginx.conf nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/var/run/nginx.pid RETVAL=0 prog="nginx" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x $nginxd ] || exit 0 # Start nginx daemons functions. start() { if [ -e $nginx_pid ];thenecho "nginx already running...."exit 1 fiecho -n $"Starting $prog: "daemon $nginxd -c ${nginx_config}RETVAL=$?echo[ $RETVAL = 0 ] && touch /var/lock/subsys/nginxreturn $RETVAL } # Stop nginx daemons functions. stop() {echo -n $"Stopping $prog: "killproc $nginxdRETVAL=$?echo[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid } # reload nginx service functions. reload() {echo -n $"Reloading $prog: "#kill -HUP `cat ${nginx_pid}`killproc $nginxd -HUPRETVAL=$?echo } # See how we were called. case "$1" in start)start;; stop)stop;; reload)reload;; restart)stopstart;; status)status $progRETVAL=$?;; *)echo $"Usage: $prog {start|stop|restart|reload|status|help}"exit 1 esac exit $RETVAL
使用此脚本的时候,也同样需要将配置路径修改成自己的
转载于:https://www.cnblogs.com/tongl/p/7216718.html
Linux(CentOS)下设置nginx开机自动启动和chkconfig管理相关推荐
- linux系统下设置oracle开机自动启动
在Linux系统中,安装好oracle数据库服务后,并不像在Windows系统下一样,oracle服务在默认情况下会随时系统的启动自动启动.Linux系统中,是需要用户去手动进行设置,才能实现orac ...
- 设置Nginx开机自动启动(centos6.8上亲测可用)
vim /etc/init.d/nginx 粘贴 #!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0. ...
- 【CentOS】设置服务开机自动启动
CentOS安装好apache.mysql等服务器程序后,并没有设置成开机自动启动的,为避免重启后还要手动开启web等服务器,还是做下设置好,其实设置很简单,用chkconfig命令就行了. 例如,要 ...
- Linux(CentOS)系统下设置nginx开机自启动
2019独角兽企业重金招聘Python工程师标准>>> Nginx 是一个很强大的高性能Web和 反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动. 首先,在linu ...
- Win7下设置everything开机自动启动
everything是个神器,不过在win7下被UAC的问题所困扰,如果简单的关闭UAC当然可以解决这个问题,不过这样就会大大的降低系统的安全性.针对这个问题,everything官方提供了基于计划任 ...
- CentOS下设置服务自动启动的方法
2019独角兽企业重金招聘Python工程师标准>>> 在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后系统默认不 ...
- Linux(CentOS 7.x) 下如何设置 nginx 开机启动?
CentOS 7 以上是用 Systemd 进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统,Systemd 服务文件以 .service 结尾. 使用命令 yum 安装 ng ...
- CentOS设置服务开机自动启动【转】
CentOS设置服务开机自动启动[转] Posted on 2012-06-28 16:00 eastson 阅读(4999) 评论(0) 编辑 收藏 CentOS安装好apache.mysql等服务 ...
- [转]CentOS设置服务开机自动启动
CentOS安装好apache.mysql等服务器程序后,并没有设置成开机自动启动的,为避免重启后还要手动开启web等服务器,还是做下设置好,其实设置很简单,用chkconfig命令就行了. 例如,要 ...
最新文章
- 无旋treap的简单思想以及模板
- loj #143. 质数判定
- was连接oracle rac集群,Oracle集群(RAC)及 jdbc 联接双机数据库
- 全链路灰度这样做,新需求迭代上线也能放心干饭
- XAMPP的安装与使用
- Navigation bar - remove recent object
- nginx请求如何映射url
- java.lang.IllegalArgumentException 不合法的参数异常
- HCIE-Security Day27:IPSec:实验(二)两个网关之间通过手工方式创建IPSec PN隧道
- 惠普136nw打印机清零_HP惠普打印机清零大全
- azw3文件怎么打开?
- 手机服务器怎么维护,手机维护远程服务器
- 在宝塔部署出现require(): open_basedir restriction in effect. File解决办法
- 线稿上色V3(比V2差别在于这个参考图的处理方式),并且更好用哦
- centos7下jenkins部署应用程序
- nuxt百度地图引入基础使用,百度地图初始化,行政区划划分
- 列表如何做,看这一篇就够啦——触底加载、虚拟滚动与计算展现值
- memset(G, 0x3f, sizeof(G))涵义
- 大学生如何奋斗5年从月薪3500到700万
- 利用阿里云公共配音接口快速配音
热门文章
- 蓝桥杯单片机十一届省赛_“第十届蓝桥杯青少组C++省赛”前三题解题思路及参考答案!...
- echart 坐标数字间隔_用LaTeX优雅地绘制数字电路
- 怎么查看电脑硬盘序列号
- 奇奇seo优化软件_信阳seo优化排名软件
- Java操作HDFS文件系统
- docker 安装mysql 5.7
- java高并发(十四)ReetrantLock 与锁
- Dockerfile----ubuntu-java
- 三十六、数据仓库的实现
- linux下常见的网络相关命令