1,在/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
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
[Install]
WantedBy=multi-user.target
脚本解释:
Unit:服务的启动顺序和依赖关系
Description:对该服务的描述;
After:在b.target服务组启动后,再启动本服务;
Service:服务具体执行的方式
ExecStart,ExecStop,ExecReload等:启动命令组,分别是服务启动时,停止时,重启时,启动前,启动后,停止后执行的命令;
Type:服务启动类型。默认simple表示ExecStart为主进程,notify类似于simple,启动结束后会发出通知信号。另外还有forking,oneshot,dbus,idle等类型;
Install:把服务放在哪个服务组
WantedBy:服务所在的服务组。
更多请参考 systemd的.service服务文件配置
2,设置开机自启动并启动nginx
设置开机自启动systemctl enable nginx.service
查看是否正确启动 systemctl list-unit-files |grep nginx 看下如下图就成功启动了
启动nginx:systemctl start nginx.service
其他常用命令
开启开机自启动:systemctl enable nginx.service
停止开机自启动 : systemctl disable nginx.service
启动 nginx 服务 : systemctl start nginx.service
停止 nginx 服务 : systemctl stop nginx.service
重启 nginx 服务 : systemctl restart nginx.service
查看服务当前状态 : systemctl status nginx.service
查看所有已启动的服务 : systemctl list-units --type=service
1,在/usr/lib/systemd/system目录下新建uwsgi.service文件,内容如下
[Unit]
Description=uwsgi - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/home/zhang/QuBian/start_uwsgi.sh
ExecStop=/home/zhang/QuBian/stop_uwsgi.sh
[Install]
WantedBy=multi-user.target
ExecStart和ExecStop指定了两个.sh文件,用于配置uwsgi的启动和停止命令
2,在/home/zhang/QuBian目录下新建start_uwsgi.sh文件和stop_uwsgi.sh文件,内容分别如下:
start_uwsgi.sh文件
#!/bin/sh
/root/.virtualenvs/qubian/bin/uwsgi --ini /home/zhang/QuBian/uwsgi.ini
stop_uwsgi.sh文件
#!/bin/sh
/root/.virtualenvs/qubian/bin/uwsgi --stop /home/zhang/QuBian/uwsgi.pid
/root/.virtualenvs/qubian/bin/uwsgi是因为我这里有虚拟环境,需要使用到虚拟环境下的uwsgi命令,相当于先workon qubian进入到qubian虚拟环境再使用uwsgi --stop uwsgi.pid
如果你的uwsgi是在虚拟环境中使用pip来安装的,可以使用whereis uwsgi来查看uwsgi在虚拟环境下的目录
最后将这两个 sh文件添加可执行权限 chmod a+x start_uwsgi.sh stop_uwsgi.sh
3,设置开机自启动并启动uwsgi
设置开机自启动systemctl enable uwsgi.service
查看是否正确启动 systemctl list-unit-files |grep uwsgi 看下如下图就成功启动了
启动uwsgi:systemctl start uwsgi.service
到这里就完成了,再次重启服务器时会自动启动运行nginx和uwsgi了,妈妈再也不担心我要手动启动了~
参考文章
uwsgi开机自启
nginx开机自启