nginx设置开机自启动

叁歲伎倆 2021-10-01 01:02 748阅读 0赞

每次启动nginx服务都需要到安装目录下的/sbin下面,感觉挺麻烦的。

下面介绍一下如何在Linux(CentOS)系统上,设置nginx开机自启动。

1 用脚本管理nginx服务

第一步:在/etc/init.d/目录下创建nginx文件,命令如下:

  1. # touch /etc/init.d/nginx

第二步:在创建的nginx文件中加入下面的内容

首先执行命令:

  1. # vim /etc/init.d/nginx

然后加下面的内容复制到nginx配置文件中

  1. #!/bin/sh
  2. #
  3. # nginx - this script starts and stops the nginx daemon
  4. #
  5. # chkconfig: - 85 15
  6. # description: NGINX is an HTTP(S) server, HTTP(S) reverse \
  7. # proxy and IMAP/POP3 proxy server
  8. # processname: nginx
  9. # config: /etc/nginx/nginx.conf
  10. # config: /etc/sysconfig/nginx
  11. # pidfile: /var/run/nginx.pid
  12. # Source function library.
  13. . /etc/rc.d/init.d/functions
  14. # Source networking configuration.
  15. . /etc/sysconfig/network
  16. # Check that networking is up.
  17. [ "$NETWORKING" = "no" ] && exit 0
  18. nginx="/usr/sbin/nginx"
  19. prog=$(basename $nginx)
  20. NGINX_CONF_FILE="/etc/nginx/nginx.conf"
  21. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
  22. lockfile=/var/lock/subsys/nginx
  23. make_dirs() {
  24. # make required directories
  25. user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
  26. if [ -z "`grep $user /etc/passwd`" ]; then
  27. useradd -M -s /bin/nologin $user
  28. fi
  29. options=`$nginx -V 2>&1 | grep 'configure arguments:'`
  30. for opt in $options; do
  31. if [ `echo $opt | grep '.*-temp-path'` ]; then
  32. value=`echo $opt | cut -d "=" -f 2`
  33. if [ ! -d "$value" ]; then
  34. # echo "creating" $value
  35. mkdir -p $value && chown -R $user $value
  36. fi
  37. fi
  38. done
  39. }
  40. start() {
  41. [ -x $nginx ] || exit 5
  42. [ -f $NGINX_CONF_FILE ] || exit 6
  43. make_dirs
  44. echo -n $"Starting $prog: "
  45. daemon $nginx -c $NGINX_CONF_FILE
  46. retval=$?
  47. echo
  48. [ $retval -eq 0 ] && touch $lockfile
  49. return $retval
  50. }
  51. stop() {
  52. echo -n $"Stopping $prog: "
  53. killproc $prog -QUIT
  54. retval=$?
  55. echo
  56. [ $retval -eq 0 ] && rm -f $lockfile
  57. return $retval
  58. }
  59. restart() {
  60. configtest || return $?
  61. stop
  62. sleep 1
  63. start
  64. }
  65. reload() {
  66. configtest || return $?
  67. echo -n $"Reloading $prog: "
  68. killproc $nginx -HUP
  69. RETVAL=$?
  70. echo
  71. }
  72. force_reload() {
  73. restart
  74. }
  75. configtest() {
  76. $nginx -t -c $NGINX_CONF_FILE
  77. }
  78. rh_status() {
  79. status $prog
  80. }
  81. rh_status_q() {
  82. rh_status >/dev/null 2>&1
  83. }
  84. case "$1" in
  85. start)
  86. rh_status_q && exit 0
  87. $1
  88. ;;
  89. stop)
  90. rh_status_q || exit 0
  91. $1
  92. ;;
  93. restart|configtest)
  94. $1
  95. ;;
  96. reload)
  97. rh_status_q || exit 7
  98. $1
  99. ;;
  100. force-reload)
  101. force_reload
  102. ;;
  103. status)
  104. rh_status
  105. ;;
  106. condrestart|try-restart)
  107. rh_status_q || exit 0
  108. ;;
  109. *)
  110. echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
  111. exit 2
  112. esac

上面的脚本文件并不是自己写的,是nginx官方提供的。

地址:http://wiki.nginx.org/RedHatNginxInitScript

注意:如果是自定义安装的nginx,修改根据实际情况修改安装路和配置文件。

  1. nginx="/usr/sbin/nginx" 修改成你的nginx执行程序的路径。比如我的是nginx="/usr/local/nginx/sbin/nginx"
  2. NGINX_CONF_FILE="/etc/nginx/nginx.conf" 修改成你的配置文件的路径
  3. 例如:NGINX_CONF_FILE="/usr/local/nginx/nginx.conf

修改完成后保存脚本文件,wq 保存并退出

第三步:设置nginx文件的权限

  1. # chmod a+x /etc/init.d/nginx

解释:a+x==>all user can execute 所有用户可执行)的意思

第四步:管理脚本

到这里,我们就可以使用nginx脚本对服务进行管理了

  1. # /etc/init.d/nginx start 启动服务
  2. # /etc/init.d/nginx stop 停止服务
  3. # /etc/init.d/nginx restart 重启服务 # /etc/init.d/nginx status 查看服务的状态 # /etc/init.d/nginx reload 刷新配置文件

2 使用chkconfig管理

上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便,比如要设置nginx开机启动等。

这个时候我们可以使用chkconfig来进行管理。

第一步:将nginx服务加入chkconfig管理列表

  1. # chkconfig --add /etc/init.d/nginx

第二步:使用service管理服务

  1. # service nginx start 启动服务
  2. # service nginx stop 停止服务
  3. # service nginx restart 重启服务 # service nginx status 查询服务的状态 # service nginx relaod 刷新配置文

第三步:设置终端模式开机启动

  1. # chkconfig nginx on

转载于:https://www.cnblogs.com/jepson6669/p/9125186.html

发表评论

表情:
评论列表 (有 0 条评论,748人围观)

还没有评论,来说两句吧...

相关阅读