ฉันจะข้ามการหมดเวลา 90s ใน systemd ได้อย่างไร


15

เป็นไปได้ไหมที่จะข้ามการหมดเวลา 90s ใน systemd แบบโต้ตอบ? ตัวอย่างเช่นเมื่อกำลังรอให้ดิสก์พร้อมใช้งานหรือผู้ใช้ออกจากระบบ ฉันรู้ว่ามันจะล้มเหลวในที่สุดดังนั้นฉันจะทำให้มันล้มเหลวตอนนี้ได้ไหม ฉันเกลียดการจ้องมองที่หน้าจออย่างช่วยไม่ได้

คำตอบ:


11

คุณมีสองทางเลือก:

  1. คุณสามารถตั้งค่าTimeoutStopSpec=UNIT ที่เฉพาะเจาะจงให้เป็นค่าเฉพาะ (เป็นวินาที *) เพื่อรอ นอกจากนี้คุณยังสามารถตั้งค่าเป็นinfinityกรณีที่จะไม่ส่ง SIGKILL (ไม่แนะนำเนื่องจากคุณอาจท้ายด้วยบริการควบคุมไม่ได้ซึ่งยากต่อการแก้ไข)

  2. ตั้งค่าDefaultTimeoutStopSec=ภายใน/etc/systemd/system.conf(หรือuser.confหรือในหนึ่งใน*.dไดเรกทอรี) เป็นค่าเริ่มต้นที่ UNIT ทั้งหมดที่ไม่ได้TimeoutStopSpec=ระบุจะใช้ คนหูหนวกสำหรับการตั้งค่านี้คือ 90s ที่คุณเห็นตามปกติ

การอ้างอิงหน้าผู้ชาย:

  • man systemd.service สำหรับ TimeoutStopSpec=
  • man systemd-system.conf สำหรับ DefaultTimeoutStopSec=

* systemd ยังยอมรับรายละเอียดเวลาเช่น "2 นาที 3 วินาที" ที่อธิบายอย่างกว้างขวางในผู้ชาย


10
นี่ไม่ใช่การโต้ตอบ เมื่อ systemd กำลังนับถอยหลัง 90s มันสายเกินไปที่จะทำการเปลี่ยนแปลงเหล่านี้และฉันถูกบังคับให้นั่งแม้ว่ามันจะทำอะไรไม่ถูก
user7610

@JiriDanek - นั่นเป็นเพราะ systemd ไม่ได้เป็นแบบโต้ตอบมันไม่ได้หมายความว่าจะเป็น กระบวนการ tty ของคุณ (ซึ่งคุณเห็นว่า 90s) ทำงานเป็นลูกของ init (sytemd) เช่นกระบวนการแสดง (getty) 90s เป็นลูกของกระบวนการนับพวกเขา (systemd) และยิ่งกว่านั้น systemd จะไม่สนใจสัญญาณส่วนใหญ่ systemd ไม่ได้หมายถึงการถูกควบคุมโดยผู้ใช้แบบสุ่มต่อหน้า tty (ซึ่งจะเป็นความเสี่ยงด้านความปลอดภัยขนาดใหญ่)
grochmal

4
ฉันเป็นผู้ใช้เดสก์ท็อปเป็นหลักดังนั้นฉันมักจะเห็นสิ่งต่าง ๆ จำเครื่องพิมพ์ของลูกสาวของ Torvalds ได้หรือไม่ ความบกพร่องด้านการออกแบบจำนวนมากสามารถพิสูจน์ได้จากความกังวลด้านความปลอดภัย
user7610

@JiriDanek - systemd ไม่ใช่ข้อกังวลมันจะเป็นเวคเตอร์การโจมตีจริง หากคุณสามารถเล็งสัญญาณที่ถูกต้องในเวลาที่เหมาะสมคุณสามารถ (ในฐานะผู้ใช้ทั่วไป) ปิดใช้งานบริการระบบ (เช่น SELinux) เพียงไปที่ /etc/systemd/system.con และเพิ่ม DefaultTimeout = 3 หรือดีกว่าแก้ไขบริการที่ล้มเหลว ความจริงที่ว่าบริการบางอย่างล้มเหลวเสมอไม่ใช่การออกแบบที่ไม่ดีของ systemd คือการออกแบบที่ไม่ดีของคนที่เขียนไฟล์ยูนิต
grochmal

ในกรณีเฉพาะของฉันผู้เขียนไฟล์ยูนิตนั้นไร้เดียงสา ฉันเพิ่งพิมพ์ผิดเมื่อคัดลอก - วางดิสก์ UUID ฉันพบว่ามันน่ารำคาญที่ต้องรอเป็นนาทีเต็มครึ่งก่อนที่ systemd จะยกเลิกการติดตั้งและให้ฉันเข้าสู่ระบบและแก้ไขปัญหา การหมดเวลานานจริง ๆ แล้วสมเหตุสมผลที่นี่ ยกเว้นเมื่อฉันผู้ดูแลรู้ว่ามันไม่ได้
user7610


6

คุณสามารถแสดงข้อคิดเห็นใน/etc/systemd/system.confบรรทัด:

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

และเปลี่ยนค่าเป็นสิ่งที่คุณเห็นว่าเหมาะสม


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