Nội dung chính
Tự khởi động lại các dịch vụ MySQL, PHP-FPM, Nginx khi website sập. Nghe hay nhỉ, đỡ thời gian chết không đáng có.
Mình áp dụng phương pháp bên dưới cho VPS Ubuntu chạy Nginx khởi tạo bằng Webinoly.
Bước 0. Liệt kê các dịch vụ đang chạy
service --status-all
Các ô đỏ trong hình chính là các dịch vụ sẽ áp dụng ở các bước tiếp theo.
Bước 1. Tạo file thực thi – shell scripts
sudo nano /opt/startifdown.sh
Dán mớ bên dưới vào, sửa php7.3 thành phiên bản đúng đã kiểm tra ở bước 0
#!/bin/bash
#Scripts to start services if not running
ps -ef | grep nginx |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/nginx start > /dev/null
fi
ps -ef | grep php7.3-fpm |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/php7.3-fpm start > /dev/null
fi
ps -ef | grep mysql |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/mysql start > /dev/null
fi
free=$(free -mt | grep Total | awk '{print $4}')
if [[ "$free" -le 50 ]];
then
/etc/init.d/mysql start > /dev/null
fi
Ctrl + O để lưu
Ctrl + X để thoát
Thay đổi quyền thực thi cho tệp vừa tạo
chmod 755 /opt/startifdown.sh
Bước 2. Cho file tự động chạy bằng Crontab
Mở Crontab
crontab -e
Thêm dòng này ở cuối. Dòng này để chạy startifdown.sh mỗi phút 1 lần. Muốn thay đổi thời gian thì xem hướng dẫn sử dụng Crontab của hocvps
* * * * * sudo /opt/startifdown.sh >/dev/null 2>&1
Ctrl + O để lưu và Ctrl + X để thoát
He he, xong rồi.
Nguồn tham khảo: geekflare.com