在CentOS系统中,要设置LNMP(Linux, Nginx, MySQL, PHP)服务在意外停止后自动重启,可以使用Systemd来实现。以下是具体步骤:
1. 确保Systemd已启用
首先,确保你的CentOS系统已经启用了Systemd。大多数现代CentOS版本默认使用Systemd。
2. 创建或编辑Systemd服务文件
你需要为Nginx、MySQL和PHP-FPM创建或编辑相应的Systemd服务文件。
Nginx
sudo vi /etc/systemd/system/nginx.service
确保内容如下:
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
MySQL
sudo vi /etc/systemd/system/mysqld.service
确保内容如下:
[Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
PHP-FPM
sudo vi /etc/systemd/system/php-fpm.service
确保内容如下:
[Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=simple PIDFile=/run/php-fpm/php-fpm.pid ExecStart=/usr/sbin/php-fpm --nodaemonize --fpm-config /etc/php-fpm.d/www.conf ExecReload=/bin/kill -USR2 $MAINPID ExecStop=/bin/kill -TERM $MAINPID [Install] WantedBy=multi-user.target
3. 重新加载Systemd配置
每次修改服务文件后,都需要重新加载Systemd配置:
sudo systemctl daemon-reload
4. 启用服务开机自启动
启用每个服务在开机时自动启动:
sudo systemctl enable nginx sudo systemctl enable mysqld sudo systemctl enable php-fpm
5. 检查服务状态
确保所有服务都已正确启动并运行:
sudo systemctl status nginx sudo systemctl status mysqld sudo systemctl status php-fpm
6. 测试自动重启功能
你可以通过停止服务来测试自动重启功能:
sudo systemctl stop nginx sudo systemctl start nginx
观察Nginx是否自动重启。
通过以上步骤,你可以确保在CentOS系统中,LNMP服务在意外停止后能够自动重启。