ฉันกำลังสร้างแพ็คเกจการกำหนดค่าและต้องการหยุดและเริ่มบริการที่มีผลต่อการกำหนดค่า ตอนนี้ผมใช้service [stop|restart]
ใน{pre,post}{inst,rm}
ทาง ฉันอ่านคำถามในที่ที่invoke-rc.d
ถูกต้องเพราะได้รับความพึงพอใจจากผู้ใช้เกี่ยวกับบริการ อย่างไรก็ตามฉันไม่พบแนวทางเกี่ยวกับเรื่องนี้ ไม่มีใครรู้แนวทางดังกล่าวหรือไม่ หรือมีคำแนะนำใด ๆ เกี่ยวกับวิธีที่ฉันควรเลือก แพ็คเกจนี้ใช้ภายในและมีแนวโน้มว่าจะอยู่ที่ 14.04 ในอีกสองปีข้างหน้า อย่างไรก็ตามฉันต้องการปล่อยให้สถานะที่สะอาดที่สุดเท่าที่จะเป็นไปได้สำหรับผู้สืบทอดsystemd
ของฉัน
จากinvoke-rc.d
หน้าคน :
เข้าถึงทุกสคริปต์ init โดยแพคเกจเดเบียนสคริปต์ดูแลควรจะทำผ่านวิงวอน-rc.d
จากคู่มือนโยบาย Debian, บทที่ 9, ส่วน 3.3 :
ผู้ดูแลควรใช้เลเยอร์ abstraction ที่จัดทำโดยโปรแกรม update-rc.d และ invoke-rc.d เพื่อจัดการกับ initscripts ในสคริปต์ของแพ็คเกจเช่น postinst, prerm และ postrm
...
สคริปต์ผู้ดูแลแพ็คเกจต้องใช้ invoke-rc.d เพื่อเรียกใช้ /etc/init.d/* initscripts แทนที่จะเรียกใช้โดยตรง
Debian ได้รับการใช้sysv-init
และจะเปลี่ยนโดยตรงไปและผมคิดว่านโยบายคู่มือจะมีการปรับปรุงในเวลาที่กำหนดในการอ้างถึงsystemd
systemctl
แต่สิ่งที่ผมไม่แน่ใจเกี่ยวกับคือ: การใช้งานที่ฉันควรinvoke-rc.d
แทนservice
? ฉันสามารถบอกได้dpkg
ว่าฉันสนใจไฟล์บางไฟล์ (ผ่านทริกเกอร์) ดังนั้นจึงมีวิธีที่จะบอกได้dpkg
ว่าฉันสนใจบริการบางอย่างเช่นกันและdpkg
เริ่มการรีสตาร์ท / โหลดใหม่หรือไม่
เพื่อชี้แจง: ฉันไม่ได้เขียนสคริปต์ init ฉันกำลังจัดเตรียมแพ็คเกจที่มีการกำหนดค่าสำหรับแอปพลิเคชันอื่น ๆ เช่น Puppet, NTP เป็นต้นดังนั้นฉันจึงหยุดและเริ่มบริการที่เกี่ยวข้องในสคริปต์
นี่ยกตัวอย่างเช่นเป็นปัญหาเกี่ยวกับการเทียบท่าเทียบinvoke-rc.d
service
ปัญหายังคงเปิดอยู่โดยมีคนคนหนึ่งอาจเป็นผู้ดูแลแสดงความคิดเห็นว่าพวกเขาสนใจที่จะทำสิ่งนี้อย่างถูกวิธี - แน่นอนว่าพวกเราทั้งคู่ไม่แน่ใจว่ามันคืออะไร (คำถามของฉันไม่ขึ้นอยู่กับปัญหานั้น)
invoke-rc.d
หน้าคนและเอกสารนโยบาย Debian บอกเราที่จะใช้ในการเชื่อมต่อกับ/etc/init.d/
สคริปต์ (อาจจะเป็นเพราะพวกเขายังคงใช้ SysV-init) วิธีการที่จะเปลี่ยนกับพุ่งพรวดหรือ systemd?