คำอธิบายปัญหา:
เมื่อบู๊ตเครื่อง เราทริกเกอร์สคริปต์การเริ่มต้นบริการที่แสดงด้านล่าง สคริปต์เป็นส่วนหนึ่งของอินสแตนซ์ ข้อมูลผู้ใช้
.
สคริปต์นี้คัดลอกบริการ/ตัวจับเวลาที่จำเป็นไปยัง ระบบ
โฟลเดอร์และเริ่มจับเวลา
ในบางครั้งหลังจากรีบูตตัวจับเวลาของเราไม่ทำงานและยังคงอยู่ ไม่มีข้อมูล
.
เดอะ sudo systemctl รีสตาร์ท cleanup.timer
คำสั่งไม่ได้ช่วย
ซูโดเท่านั้น systemctl หยุดการล้างข้อมูลตัวจับเวลา
แล้ว sudo systemctl เริ่มการล้างข้อมูล ตัวจับเวลา
ทำงาน
เรามีปัญหานี้ไม่เฉพาะกับตัวจับเวลาเฉพาะเท่านั้น เรามีตัวจับเวลาจำนวนมากที่มีโครงสร้างและบริการเริ่มต้นเกือบเหมือนกัน โหลดตัวจับเวลาทั้งหมดแล้ว แต่บางตัวสามารถเข้าได้ ใช้งานอยู่ (ผ่านไปแล้ว)
สถานะและไม่ทำงาน
การตั้งค่าของเรา:
พวกเราวิ่ง อูบุนตู 18.04 LTS
.
เรามีสคริปต์การเริ่มต้นบริการนี้:
sudo cp <เส้นทางพื้นฐาน>/services/cleanup.service /etc/systemd/system/cleanup.service
sudo cp <BASIC PATH>/services/cleanup.timer /etc/systemd/system/cleanup.timer
sudo systemctl daemon โหลดซ้ำ
sudo systemctl เริ่มการล้างข้อมูล ตัวจับเวลา
และนี่ บริการทำความสะอาด
:
[หน่วย]
Description=บริการล้างข้อมูล
ต้องการ = docker.service
After=docker.service
[บริการ]
ExecStart=<<คำสั่งเชลล์>>
และนี่ cleanup.timer
:
[หน่วย]
คำอธิบาย=ตัวจับเวลาสำหรับบริการเพื่อล้างข้อมูล
[ตัวจับเวลา]
OnBootSec=1 นาที
OnUnitActiveSec=1800วินาที
ความแม่นยำวินาที=5วินาที
[ติดตั้ง]
WantedBy=timers.target
ตอนนี้ตรวจสอบคำสั่งเหล่านี้:
> sudo systemctl รายการตัวจับเวลา
ถัดไป ซ้าย หน่วยสุดท้ายที่ผ่านไป เปิดใช้งาน
n/a n/a n/a n/a cleanup.timer cleanup.service
> sudo systemctl สถานะ cleanup.timer
â cleanup.timer - ตัวจับเวลาสำหรับบริการเพื่อล้างสิ่งต่างๆ
โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/cleanup.timer; ปิดใช้งาน; ค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งานอยู่: ใช้งานอยู่ (ผ่านไปแล้ว) ตั้งแต่วันพุธที่ 11-2021-11-17 21:07:22 UTC; 11 ชั่วโมงที่แล้ว
ทริกเกอร์: ไม่ระบุ
17 พฤศจิกายน 21:07:22 ip-XX-XX-XX-XX systemd[1]: เริ่มจับเวลาสำหรับบริการเพื่อล้างข้อมูล
คำถาม:
อะไรคือสาเหตุของสถานการณ์นี้และจะหลีกเลี่ยงได้อย่างไร