Systemd สามารถทำได้สำหรับคุณ
นี่คือตัวอย่างของไฟล์หน่วยทั่วไป:
$ cat /etc/systemd/system/yourdaemon.service
[หน่วย]
คำอธิบาย=ภูตของคุณ
After=network-online.target
ต้องการ = network-online.target systemd-networkd-wait-online.service
[บริการ]
ExecStart=/path/to/daemon
[ติดตั้ง]
WantedBy=multi-user.target
และนี่คือไฟล์หน่วยที่เปิดใช้งานการรีสตาร์ทเมื่อล้มเหลว:
$ cat /etc/systemd/system/yourdaemon.service
[หน่วย]
คำอธิบาย=ภูตของคุณ
After=network-online.target
ต้องการ = network-online.target systemd-networkd-wait-online.service
StartLimitIntervalSec=500
StartLimitBurst=5
[บริการ]
รีสตาร์ท = เมื่อล้มเหลว
รีสตาร์ทวินาที = 5 วินาที
ExecStart=/path/to/daemon
[ติดตั้ง]
WantedBy=multi-user.target
ฉันคิดว่ามันเกินขอบเขตของคำตอบนี้ที่จะดูรายละเอียดทุกอย่าง แต่โดยย่อ:
- สร้างไฟล์หน่วยสำหรับบริการ (ไบนารี/กระบวนการ) ที่คุณต้องการเริ่มต้น
- ตรวจสอบให้แน่ใจว่าได้รวม
สตาร์ทลิมิต
และ เริ่มต้นใหม่
ตัวเลือกตามที่ระบุไว้ข้างต้น
อ้างอิง.