ทำไมบริการไม่เริ่มเมื่อติดตั้ง


23

ฉันเคยเห็นบางครั้งตอนนี้ แต่ไม่พบสิ่งใดในชายอูบุนตูเกี่ยวกับpolicy-rc.dไบนารีแปลกประหลาดที่ป้องกันไม่ให้บริการเริ่ม / รีสตาร์ท / หยุดเมื่อเรียกใช้โดย dpkg / apt ดังนั้นฉันอยากจะรู้ว่าอะไรคือสาเหตุของสิ่งนี้

Setting up lxc (0.9.0-0ubuntu3.6) ...
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.

เห็นได้ชัดว่าไม่มีแพ็คเกจที่เป็นเจ้าของไบนารีนี้:

dpkg -S /usr/sbin/policy-rc.d
dpkg-query: no path found matching pattern /usr/sbin/policy-rc.d

คำตอบ:


31

"สคริปต์" นี้รวมอยู่ในsysv-rcแพ็คเกจ นี่เป็นส่วนหนึ่งของนโยบาย Debian ที่อนุญาตให้ sysadmins ควบคุมว่าจะเริ่ม / หยุด / หยุดบริการใดเมื่อใดก็ตามที่ติดตั้ง / อัพเกรด / ถอนการติดตั้งแพ็คเกจ:

นโยบาย -RC.D อินเทอร์เฟซสำหรับเลเยอร์นโยบาย (/usr/sbin/policy-rc.d):

ระบบ Debian ส่วนใหญ่จะไม่มีสคริปต์นี้เนื่องจากความต้องการเลเยอร์นโยบายนั้นไม่ธรรมดามาก คนส่วนใหญ่ที่ใช้คุก chroot ต้องใช้สคริปต์บรรทัดเดียวซึ่งส่งกลับสถานะการออกจาก 101 เป็นสคริปต์ /usr/sbin/policy-rc.d ที่ถูกจำคุก

ไฟล์ /usr/sbin/policy-rc.d ต้องถูกจัดการผ่านระบบทางเลือก (/ usr / sbin / update- ทางเลือก) โดยแพ็คเกจใด ๆ ที่จัดเตรียมไว้

/usr/sbin/policy-rc.d [ตัวเลือก] []

/usr/sbin/policy-rc.d [ตัวเลือก] - รายการ [... ]

( ที่มา )

แล้วเกิดอะไรขึ้นที่นี่? ดีทุกครั้งที่มีสคริปต์นี้มันจะส่งคืนรหัสซึ่งระบุนโยบายปัจจุบันของระบบท้องถิ่น (ซึ่งโดยค่าเริ่มต้น101= การกระทำที่ต้องห้ามตามนโยบาย) หากคุณต้องการเปลี่ยนนโยบายเพียงแค่แก้ไขไฟล์เป็นรูทเป็นค่าใด ๆ นี้:

  0 - action allowed
  1 - unknown action (therefore, undefined policy)
 100 - unknown initscript id
 101 - action forbidden by policy
 102 - subsystem error
 103 - syntax error
 104 - [reserved]
 105 - behaviour uncertain, policy undefined.
 106 - action not allowed. Use the returned fallback actions
       (which are implied to be "allowed") instead. 

สคริปต์ยังคงเป็นตัวยึดตำแหน่ง แต่เมื่อส่งคืนค่าเหล่านี้ทั้งหมดแล้วจะสามารถส่งคืนได้ หากคุณต้องการที่จะช่วยให้การเปลี่ยนแปลงใด ๆ เพียงแค่เปลี่ยนexit 101สำหรับexit 0และทำ เมื่อใดก็ตามที่คุณติดตั้ง / ลบ / อัปเกรดบริการเหล่านี้จะเริ่ม / หยุดอีกครั้ง


6
รูปภาพของ Docker ได้รับการแก้ไขexit 101 # For most Docker users, "apt-get install" only happens during "docker build", # where starting services doesn't work and often fails in humorous ways. This # prevents those failures by stopping the services from attempting to start.
Tjorriemorrie

2
@Tjorriemorrie ช่วยอธิบายหน่อยได้ไหม? ฉันมีปัญหานี้เมื่อสร้างอิมเมจนักเทียบท่าและดูเหมือนว่าฉันจะไม่สามารถแก้ไขได้
Jonny Flowers

วิธีแก้ปัญหาที่เป็นไปได้: monblocnotes.com/node/2057
David Portabella


@Bigood: หมายเลขบรรทัดมีการเปลี่ยนแปลงในmasterสาขาล่าสุด นี่คือ [ลิงก์ไปยังบรรทัดในแหล่งที่มาของนักเทียบท่า ( github.com/moby/moby/blob/v17.05.0-ce/contrib/mkimage/ ...... )
Hosam Aly
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.