LNMP设置开机自启动
服务器重启后,一步步启动各种程序是个非常麻烦也是容易出错的事情,遇到过不止一次,有某个服务忘记起来的情况,必须得彻底解决这种问题,这种情况我们可以尝试配置开机自启动。
环境
centos 7.5
我的版本跟低版本有很多不同,不能通过chkconfig add命令加入自启动,我们先进入目录
/lib/systemd/system
依次新建若干个服务:
- mysqld.service
[Unit]
Description=mysql
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/mysql.server
ExecReload=/bin/systemctl restart mysqld.service
ExecStop=/bin/systemctl stop mysqld.service
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- nginx.service
[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/bin/nginx ExecReload=/usr/bin/nginx -s reload ExecStop=/usr/bin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
- php-fpm.service
[Unit] Description=php-fpm After=network.target [Service] Type=forking ExecStart=/usr/bin/php-fpm ExecReload=ps -ef|grep php-fpm|awk -F {print }|xargs kill -USR2 ExecStop=ps -ef|grep php-fpm|awk -F {print }|xargs kill -INT PrivateTmp=true [Install] WantedBy=multi-user.target
- Redis.service
[Unit] Description=Redis After=network.target [Service] Type=forking ExecStart=/usr/bin/Redis-server /usr/local/Redis-5.0.0/Redis.conf ExecStop=/usr/local/Redis-5.0.0/Redis-cli shutdown PrivateTmp=true [Install] WantedBy=multi-user.target
ExecStart, ExecStop, ExecReload各有不同,可根据业务自行修改
并且把尚需几个服务 systemctl enable 启动。
测试
完成后我们重启机器:
reboot
测试一下【别再生产随意reboot哟】,几个定义的服务都陆续启动成功。
参数说明
主要有以下三部分
- [unit] :定义与Unit类型无关的通用选项;用于提供unit的描述信息、 unit行为及依赖关系等
- [Service]:与特定类型相关的专用选项;此处为Service类型
- [Install]:定义由“ systemctl enable”以及”systemctl disable“命令在实现服务启用或禁用时用到的一些选项
Service参数:
- EnvironmentFile:环境配置文件
- ExecStart:指明启动unit要运行命令或脚本的绝对路径
- ExecStartPre: ExecStart前运行
- ExecStartPost: ExecStart后运行
- ExecRsload: 重启当前服务时执行的命令
- ExecStopPost:停止当前服务之后执行的命令
- ExecStartSec:自动重启当前服务间隔的秒数
- ExecStop:指明停止unit要运行的命令或脚本
- Restart:当设定Restart=1时,则当次daemon服务意外终止后,会再次自动启动此服务。
- TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数。
- Environment:指定环境变量。
Install参数:
- Alias:别名,可使用systemctl command Alias.service
- RequiredBy:被哪些units所依赖,强依赖
- WantedBy:被哪些units所依赖,弱依赖
- Also:安装本服务的时候还要安装别的相关服务
参考
LNMP设置开机自启动
https://blog.puresai.com/2019/03/29/180/