在CentOS系统中,要设置LNMP(Linux, Nginx, MySQL, PHP)服务在意外停止后自动重启,可以使用Systemd来实现。以下是具体步骤:
首先,确保你的CentOS系统已经启用了Systemd。大多数现代CentOS版本默认使用Systemd。
你需要为Nginx、MySQL和PHP-FPM创建或编辑相应的Systemd服务文件。
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
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
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
每次修改服务文件后,都需要重新加载Systemd配置:
sudo systemctl daemon-reload
启用每个服务在开机时自动启动:
sudo systemctl enable nginx
sudo systemctl enable mysqld
sudo systemctl enable php-fpm
确保所有服务都已正确启动并运行:
sudo systemctl status nginx
sudo systemctl status mysqld
sudo systemctl status php-fpm
你可以通过停止服务来测试自动重启功能:
sudo systemctl stop nginx
sudo systemctl start nginx
观察Nginx是否自动重启。
通过以上步骤,你可以确保在CentOS系统中,LNMP服务在意外停止后能够自动重启。