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 ,其他命令在上面的配置文件中有,可以参考