ฉันสามารถแก้ไขไฟล์หน่วย Nginx Systemd (/lib/systemd/system/nginx.service) ที่จัดทำโดยแพคเกจ nginx ได้อย่างปลอดภัยหรือไม่


0

ฉันติดตั้ง Nginx พร้อมกับapt install nginxโฮสต์ Debian 9.2 แล้ว มันใช้งานได้ดี แต่เมื่อดูในวารสาร Systemd ด้วยjournalctl -u nginxฉันได้รับเฮฮา:

เริ่มต้นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ

ปรากฎว่า Systemd นำฟิลด์ "คำอธิบาย" กลับมาใช้ใหม่ในส่วน "[หน่วย]" ของไฟล์หน่วยและแน่นอนว่า/lib/systemd/system/nginx.serviceมันบอกว่า:

คำอธิบาย = เว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ

นี่เป็นเรื่องตลกโดยผู้ดูแล Debian Nginx หรือบุคคลอื่นหรือไม่ แม้แต่เอกสารประกอบของ Systemd ที่https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Description=พูดว่า:

ตัวอย่างที่ไม่ดีคือ "เซิร์ฟเวอร์ HTTP น้ำหนักเบาประสิทธิภาพสูง" (ทั่วไปเกินไป)

ดังนั้นฉันจึงคิดที่จะแก้ไขฟิลด์ "คำอธิบาย" เพื่อให้มันมีค่ามากขึ้น ehm, คำอธิบาย แต่ฉันไม่แน่ใจว่ามันจะทำงานอย่างไรเมื่อฉันจะอัปเดตแพคเกจ nginx เป็นส่วนหนึ่งของการอัปเดตระบบหรืออัพเกรด - ฉันจะถูกเตือน ความขัดแย้งหากnginx.serviceพยายามติดตั้งเวอร์ชั่นอื่น? ฉันรู้ว่านี่เป็นกรณีของไฟล์การกำหนดค่าแพคเกจมันใช้กับไฟล์ประเภทอื่นจากแพ็คเกจหรือไม่

คำตอบ:


1

ตามกฎคร่าวๆสิ่งใดใน/usrหรือ/libควรพิจารณาว่าเป็นแบบอ่านอย่างเดียวและโดยเฉพาะอย่างยิ่งสิ่งใดก็ตามที่ติดตั้งโดยแพ็คเกจ (มีข้อยกเว้นโชคร้ายที่หายาก) เว้นแต่ไฟล์จะถูกทำเครื่องหมายเป็นพิเศษในแพ็คเกจการอัปเกรดจะเขียนทับไฟล์นั้น

วิธีที่แนะนำในการเปลี่ยนไฟล์ systemd /etcต่างๆคือการคัดลอกไป ตัวอย่างเช่นไฟล์หน่วย/etc/systemd/system/nginx.serviceจะแทนที่ไฟล์ใน / usr / lib (มันจะแทนที่หน่วยบริการ init.d ที่สร้างอัตโนมัติ) ใช้เครื่องมือsystemd-deltaเพื่อดูความแตกต่างของยูนิตที่ถูกแทนที่ทั้งหมด

ดีฉันพูดว่า "แนะนำ" เพราะมันยังทำงานร่วมกับสิ่งต่าง ๆ เช่นกฎ udev และเช่น ... แต่วิธีที่ดียิ่งขึ้นคือการแทนที่เพียงส่วนหนึ่งของหน่วยโดยใช้ไฟล์ "หล่นใน" /etc/systemd/system/nginx.service.d/foobar.conf- นี้ต้องการเพียงสองบรรทัดส่วน ชื่อ[Unit]และDescription=การตั้งค่าใหม่ของคุณ ส่วนที่เหลือจะได้รับการสืบทอดจาก / usr / lib

ในทั้งสองกรณีคุณสามารถใช้systemctl edit [--full]เพียงแค่เปิดตัวแก้ไขและทำการเปลี่ยนแปลง

ในที่สุดตัวเลือก Debian ทั่วไปคือการบอกระบบบรรจุภัณฑ์ (dpkg) เพื่อหลีกเลี่ยงการอัปเดตไฟล์เฉพาะไม่ว่าจะอยู่ที่ไหน คุณสามารถ "เบี่ยงเบน" แฟ้มจริงอื่น ๆ dpkg-divertโดยใช้ distros อื่น ๆ มีคุณสมบัติที่คล้ายกันเช่น Pacman Arch ของใช้และNoExtract=NoUpgrade=

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.