添加nginx服务到service的过程
用途说明
service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。相关的命令还包括chkconfig、ntsysv等,chkconfig用于查看、设置服务的运行级别,ntsysv用于直观方便的设置各个服务是否自动启动。service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。
看看下面的手册页可能更加清楚的了解service的内幕:service运行指定服务(称之为System V初始脚本)时,把大部分环境变量去掉了,只保留LANG和TERM两个环境变量,并且把当前路径置为/,也就是说是在一个可以预测的非常干净的环境中运行服务脚本。这种脚本保存在/etc/init.d目录中,它至少要支持start和stop命令。
一、问题描述
1、安装完nginx后,无法使用service或systemctl命令管理nginx服务
二、问题分析
1、/etc/init.d/目录下缺少nginx默认启动脚本
三、在/etc/init.d/路径下添加脚本文件,名称为nginx,并添加文件可执行权限,如下:
1 #!/bin/bash 2 #Startup script for the nginx Web Server 3 #chkconfig: 2345 85 15 4 nginx=/usr/local/nginx/sbin/nginx 5 conf=/usr/local/nginx/conf/nginx.conf 6 case $1 in 7 start) 8 echo -n "Starting Nginx" 9 $nginx -c $conf 10 echo " done." 11 ;; 12 stop) 13 echo -n "Stopping Nginx" 14 killall -9 nginx 15 echo " done." 16 ;; 17 test) 18 $nginx -t -c $conf 19 echo "Success." 20 ;; 21 reload) 22 echo -n "Reloading Nginx" 23 ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP 24 echo " done." 25 ;; 26 restart) 27 $nginx -s reload 28 echo "reload done." 29 ;; 30 *) 31 echo "Usage: $0 {start|restart|reload|stop|test|show}" 32 ;; 33 esac
四、问题验证
1、service命令