# 前言
nginx 安装成功后,可用使用 安装路径 /sbin/nginx -s start|reopen|reopen 等命令
也可以加入 service 或 systemctl 方便管理
# service 配置流程
编辑编辑
vi /etc/init.d/nginx
软链接 /etc/init.d/ 指向 /etc/rc.d/init.d/
只要把下面的路径 改成自己的安装路径 /usr/local/webserver
NGINX_BIN='/usr/local/webserver/nginx/sbin/nginx'
CONFIG='/usr/local/webserver/nginx/conf/nginx.conf'
保存后修改权限
chmod 755 nginx
设置开启启动
/sbin/chkconfig nginx on
service nginx status 查看是否配置完成
#! /bin/sh | |
# chkconfig: 2345 55 25 | |
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and | |
# run 'update-rc.d -f nginx defaults', or use the appropriate command on your | |
# distro. For CentOS/Redhat run: 'chkconfig --add nginx' | |
### BEGIN INIT INFO | |
# Provides: nginx | |
# Required-Start: $all | |
# Required-Stop: $all | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: starts the nginx web server | |
# Description: starts nginx using start-stop-daemon | |
### END INIT INFO | |
# Author: licess | |
# website: https://lnmp.org | |
NGINX_BIN='/usr/local/webserver/nginx/sbin/nginx' | |
CONFIG='/usr/local/webserver/nginx/conf/nginx.conf' | |
case "$1" in | |
start) | |
echo -n "Starting nginx... " | |
PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}') | |
if [ "$PID" != "" ]; then | |
echo "nginx (pid $PID) already running." | |
exit 1 | |
fi | |
$NGINX_BIN -c $CONFIG | |
if [ "$?" != 0 ]; then | |
echo " failed" | |
exit 1 | |
else | |
echo " done" | |
fi | |
;; | |
stop) | |
echo -n "Stoping nginx... " | |
PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}') | |
if [ "$PID" = "" ]; then | |
echo "nginx is not running." | |
exit 1 | |
fi | |
$NGINX_BIN -s stop | |
if [ "$?" != 0 ] ; then | |
echo " failed. Use force-quit" | |
$0 force-quit | |
else | |
echo " done" | |
fi | |
;; | |
status) | |
PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}') | |
if [ "$PID" != "" ]; then | |
echo "nginx (pid $PID) is running..." | |
else | |
echo "nginx is stopped." | |
exit 0 | |
fi | |
;; | |
force-quit|kill) | |
echo -n "Terminating nginx... " | |
PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}') | |
if [ "$PID" = "" ]; then | |
echo "nginx is is stopped." | |
exit 1 | |
fi | |
kill $PID | |
if [ "$?" != 0 ]; then | |
echo " failed" | |
exit 1 | |
else | |
echo " done" | |
fi | |
;; | |
restart) | |
$0 stop | |
sleep 1 | |
$0 start | |
;; | |
reload) | |
echo -n "Reload nginx... " | |
PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}') | |
if [ "$PID" != "" ]; then | |
$NGINX_BIN -s reload | |
echo " done" | |
else | |
echo "nginx is not running, can't reload." | |
exit 1 | |
fi | |
;; | |
configtest) | |
echo -n "Test nginx configure files... " | |
$NGINX_BIN -t | |
;; | |
*) | |
echo "Usage: $0 {start|stop|restart|reload|status|configtest|force-quit|kill}" | |
exit 1 | |
;; | |
esac |
# systemctl 配置流程
systemctl 兼容 service
即 systemctl 可用读取 /etc/init.d/ 下的程序
完成前面的步骤 可用直接执行 systemctl daemon-reload
systemctl status nginx 查看
另外
Centos7 的服务 systemctl 脚本存放在:/usr/lib/systemd/ 目录下,有系统(system)和用户(user)之分,一般需要开机不登录就能运行的程序,就存放在 /usr/lib/systemd/system/ 目录下
/etc/systemd/system/ 软链接 指向 /usr/lib/systemd/system/
vi /etc/systemd/system/nginx.service
/usr/local/webserver 换成自己的安装路径
systemctl daemon-reload 重载 systemctl 配置
systemctl status nginx 查看状态
systemctl enable nginx 相当于 /sbin/chkconfig nginx on 设置开启启动
[Unit] | |
Description=The NGINX HTTP and reverse proxy server | |
After=network.target remote-fs.target nss-lookup.target | |
[Service] | |
Type=forking | |
PIDFile=/usr/local/webserver/nginx/nginx.pid | |
ExecStart=/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf | |
ExecReload=/usr/local/webserver/nginx/sbin/nginx -s reload | |
ExecStop=/bin/kill -s QUIT $MAINPID | |
PrivateTmp=false | |
[Install] | |
WantedBy=multi-user.target |