ฉันกำลังทำให้การตั้งค่า systemd ต่างๆ แข็งขึ้นสำหรับ Ubuntu Server 20.04
อย่างไรก็ตาม มีแอตทริบิวต์ systemd จำนวนมากที่อาจรบกวนกระบวนการที่ถูกต้องตามกฎหมาย
ดังนั้นฉันต้องการตั้งค่าสคริปต์ทุบตีเพื่อเปิด / ปิดใช้งานการตั้งค่าบริการ systemd ที่กำหนดเองทั้งหมดของฉันอย่างรวดเร็วพร้อมกันสำหรับบางครั้งที่ฉันต้องแก้ไขปัญหาบริการที่ไม่ทำงาน
พารามิเตอร์:
สำหรับทุกบริการที่ฉันปรับแต่ง ฉันสร้าง <ชื่อ>.service.d/
ไดเรกทอรี
สำหรับทุกบริการที่ฉันปรับแต่ง ฉันจะบันทึกการตั้งค่าใหม่ในไฟล์ชื่อ <ชื่อ>.service-custom.conf
ด้วยวิธีนี้ ฉันจึงไม่ต้องกังวลว่าการอัปเดตจะเขียนทับการตั้งค่าที่กำหนดเองของฉัน
ตัวอย่างเช่น
ขณะนี้ฉันสามารถดำเนินการด้วยตนเอง:
#mv /etc/systemd/system/php7.3-fpm.service.d/php7.3-fpm.service-custom.conf /etc/systemd/system/php7.3-fpm.service.d/php7.3 -fpm.service-custom.conf.bak && systemctl daemon-reload && systemctl รีสตาร์ท php7.3-fpm.service
และข้างต้นจะย้ายการตั้งค่าแบบกำหนดเองของฉันไปที่ไฟล์ .bak รีสตาร์ท daemon และส่งกลับบริการ php7.3-fpm กลับสู่สถานะเริ่มต้น โดยเปลี่ยนการตั้งค่าแบบกำหนดเองของฉันเป็น "ปิด"
(เช่น. /usr/bin/systemd-analyze ความปลอดภัย
จะแสดงสถานะเริ่มต้นของบริการ php7.3-fpm.service 9.6 ไม่ปลอดภัย
)
ในทางกลับกัน ฉันสามารถดำเนินการด้วยตนเอง:
#mv /etc/systemd/system/php7.3-fpm.service.d/php7.3-fpm.service-custom.conf.bak /etc/systemd/system/php7.3-fpm.service.d/php7 .3-fpm.service-custom.conf && systemctl daemon-reload && systemctl รีสตาร์ท php7.3-fpm.service
และด้านบนจะใช้การตั้งค่า systemd ที่กำหนดเองของฉันอีกครั้ง เปลี่ยนการตั้งค่าแบบกำหนดเองของฉันเป็น "เปิด"
(เช่น./usr/bin/systemd-analyze ความปลอดภัย
จะสะท้อนถึงความก้าวหน้าในการให้บริการของฉัน php7.3-fpm.service 6.1 ขนาดกลาง
คำถาม:
ฉันสามารถใช้ตัวแปรพาธและชื่อไฟล์ใดเพื่อใช้คำสั่งด้วยตนเองข้างต้นกับบริการทั้งหมดที่ตรงกับไดเร็กทอรีและโครงสร้างชื่อไฟล์ที่ฉันใช้ด้านบน ในเวลาเดียวกัน?
ด้วยเหตุนี้ จึงสร้างฟังก์ชัน "เปิด/ปิด" สวิตช์ไฟได้อย่างมีประสิทธิภาพสำหรับการปรับแต่งบริการ systemd ทั้งหมดของฉัน
"ปิด"
mv /etc/systemd/system/<name>service.d/<name>-custom.conf /etc/systemd/system/<name>.service.d/<name>-custom.conf.bak && systemctl daemon- โหลดซ้ำ && systemctl รีสตาร์ท <name>.service
และ
"บน"
mv /etc/systemd/system/<name>service.d/<name>-custom.conf.bak /etc/systemd/system/<name>service.d/<name>-custom.conf && systemctl daemon-reload && systemctl รีสตาร์ท <name>.service