[Shell script] Kiểm tra và khởi động lại Service trên Linux Server


Nếu xảy ra một sự cố nào đó trên Linux Server, mà làm dừng 1 dịch vụ (Linux Service) như mysql chẳng hạn. Điều đó có thể khiến cho website của chúng ta bị dừng hoạt động bởi vì HDH Linux không thể tự khởi động lại service. Vì vậy đoạn script (Sử dụng Shell script) được VinaSupport sử dụng để kiểm 1 service có đang hoạt động không và tự động khởi động lại nó khi bị tắt.

Script tự động kiểm tra và khởi động Service

Tạo 1 script có đường dẫn /opt/scripts/auto-check-service.sh với nội dung như sau:

#!/bin/bash
SERVICE=<service>
if P=$(pgrep $SERVICE)
then
    echo "$SERVICE is running, PID is $P"
else
    echo "$SERVICE is not running, starting..."
    # start service if not running
    systemctl start $SERVICE
fi

Với <service> là tên service cần kiểm tra, ví dụ: mysqld, nginx,…

Phân quyền cho script

sudo chmod +x /opt/scripts/auto-check-service.sh

Test thử hoạt động của script

Thiết lập Cron Job kiểm tra Service

Thực hiện command sudo crontab -e trên server để thiết lập 1 job tự động kiểm tra từng phút. (Chạy job với quyền của tài khoản root)

# m h  dom mon dow   command
* * * * * /opt/scripts/auto-check-service.sh >/dev/null 2>&1

Đoạn script sẽ tự động được chạy bởi Cron Job mỗi phút để kiểm tra service. Bạn có thể tăng thời gian này lên.

Nguồn: vinasupport.com

 

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web