nginx加入到service服务 systemctl安装nginx 自启动

linux服务目前主要有service和systeectl两种管理方式,systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动,

所以设置nginx启动命令就有两种方案咯,下面一一介绍一下

一、service start nginx启动模式:

  service命令其实是去/etc/init.d目录下,去执行相关程序,相应脚本需要自己编写

安装nginx后,使用命令service nginx start启动nginx服务是,无法启动,会报如下错误

 

这是因为服务器未设置nginx启动脚本,那么需要在/etc/init.d/目录下创建nginx的启动文件

方法:

  执行 vi /etc/init.d/nginx

  进入文件,将以下内容复制到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

 

  执行 service nginx start后报无权限错误,这时候需要处理文件权限

  执行  chmod 755 nginx即可,

再次启动服务

 

 

命令扩展:

  service nginx start 启动

  service nginx stop 关闭

  servcie nginx reload 重新加载

 参考博客:https://www.cnblogs.com/lwhctv/p/9132857.html

二、systemctl 命令方式启动服务

  systemd对应的进程管理命令是systemctl,已nignx服务为例子

  命令 vim /usr/lib/systemd/system/nginx.service,进入文件,将以下代码复制进去保存即可

[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
# 设置开机启动
#systemctl enable nginx.service
# 启动nginx服务
#systemctl start nginx.service 
# 重新启动nginx服务
#systemctl restart nginx.service 
# 停止ngixn服务
#systemctl stop nginx.service

 

  上传完成后,执行   systemctl daemon-reload 【重新加载配置文件,只有重新加载后,命令才能生效,否则会报错】

  然后启动nignx服务  ystemctl start nginx.service ,其他命令在上面的配置文件中有,可以参考

 

posted @ 2020-11-28 15:21  风华正茂的时代  阅读(1458)  评论(0编辑  收藏  举报