Chỉ trả lời phần khởi động lại dịch vụ. Tôi cũng đã bắt gặp Monit, nhưng trên hệ thống CentOS 7 sẽ chăm sóc tất cả những thứ đó cho bạn. Bạn chỉ cần thêm hai dòng này vào tệp .ervice (nếu chúng chưa có):
Restart=always
RestartSec=3
Xem https://jonarcher.info/2015/08/ensure-systemd-service-restart-on-failure/ để tham khảo.
Nếu bạn muốn tạo một dịch vụ systemd tùy chỉnh, việc viết tệp dịch vụ của riêng bạn khá đơn giản. Xem ví dụ dưới đây, cho một máy chủ http tùy chỉnh.
Bắt đầu trình chỉnh sửa với tệp dịch vụ mới:
vim /etc/systemd/system/httpd.service
Và thêm nội dung sau, bạn có thể chỉnh sửa theo yêu cầu:
[Unit]
Description=My httpd Service
After=network.target
[Service]
Type=simple
User=root
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PERLLIB=/perl
ExecStart=/bin/httpd /etc/httpd.conf
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
Tôi muốn nó tự động khởi động khi khởi động:
systemctl enable httpd
Nói với systemd về những thay đổi và bắt đầu dịch vụ:
systemctl daemon-reload
systemctl start httpd
Và bây giờ bạn có thể thấy trạng thái:
systemctl status httpd
Để tham khảo, xem https://scottlinux.com/2014/12/08/how-to-create-a-systemd-service-in-linux-centos-7/