บางครั้งเมื่อฉันเรียกใช้คำสั่งจากสถานีร่วมงานจะแนะนำหรือแก้ไขสคริปต์ของฉันที่จะแสดงkillall
killall -HUP
สิ่งที่ไม่-HUP
เป็นส่วนหนึ่งทำอย่างไร
บางครั้งเมื่อฉันเรียกใช้คำสั่งจากสถานีร่วมงานจะแนะนำหรือแก้ไขสคริปต์ของฉันที่จะแสดงkillall
killall -HUP
สิ่งที่ไม่-HUP
เป็นส่วนหนึ่งทำอย่างไร
คำตอบ:
-HUP
ตัวเลือกที่เป็นสัญญาณที่ส่งไปยังกระบวนการโดยkillall
คำสั่ง อาจเป็นเรื่องยากที่จะบอกเล็กน้อย แต่รายการที่เกี่ยวข้องในkillall
คู่มือคือ:
-SIGNAL Send a different signal instead of the default TERM. The signal may be specified
either as a name (with or without a leading SIG), or numerically.
ความแตกต่างระหว่างTERM
สัญญาณเริ่มต้นที่killall
ส่งและHUP
สัญญาณขึ้นอยู่กับโปรแกรมที่คุณส่งสัญญาณเป็นหลัก เมื่อสิ้นสุดโปรแกรมพวกเขาจะได้รับค่าสัญญาณขัดจังหวะที่แตกต่างกัน ดังนั้นโปรแกรมสามารถจับอินเทอร์รัปต์และตัดสินใจตามมูลค่าหากพวกเขาควรทำสิ่งใดสิ่งหนึ่ง
TERM
สัญญาณ (อดีต "ยุติสัญญาณ") มักจะถูกส่งไปยังโปรแกรมที่จะขอเลิกสัญญา (ซึ่งเป็นรุ่น politer ของการบังคับให้เลิกจ้างกับKILL
สัญญาณ) โปรแกรมมีอิสระที่จะจับและไม่สนใจTERM
สัญญาณ ไม่จำเป็นต้องยุติหากไม่ต้องการและสามารถเพิกเฉยต่อสัญญาณนี้ได้อย่างสมบูรณ์
HUP
สัญญาณ (อดีต "สัญญาณ hangup") มักจะถูกส่งไปยังโปรแกรมที่จะขอให้เริ่มใหม่อีกครั้งอ่านการตั้งค่าทั้งหมดในกระบวนการ พฤติกรรมที่แท้จริงของโปรแกรมขึ้นอยู่กับการใช้งานเฉพาะโปรแกรม ไม่ใช่ทุกโปรแกรมที่จับได้HUP
และไม่จำเป็นต้องมีการประชุมหรือเชื่อ ตัวอย่างเช่นเว็บเซิร์ฟเวอร์ Apache จะรับHUP
สัญญาณและอ่านไฟล์การกำหนดค่าทั้งหมดอีกครั้ง แต่จะไม่เริ่มต้นกระบวนการใหม่
หากคุณต้องการยุติกระบวนการอย่างแท้จริงและไม่ต้องกังวลว่าจะจับและเชื่อฟังสัญญาณหรือไม่ใช้KILL
สัญญาณ ไม่สามารถถูกดักจับหรือละเว้นได้และผลลัพธ์ในกระบวนการจะสิ้นสุดลง
สำหรับการตรวจสอบที่ดีของสัญญาณ POSIX ใช้ได้ดูที่บทความวิกิพีเดียนี้
#FAIL
คนเหล่านั้นที่ไม่เคยอ่านสวิตช์เลย ขอขอบคุณ!
สัญญาณ-HUP
คือ "วางสาย" ที่อาจเรียกให้แอปหยุดอ่านไฟล์ปรับแต่งแล้วเริ่มใหม่อีกครั้ง มันไม่จำเป็นต้องดีกว่าการใช้โดยไม่ต้อง
killall Finder
และ
killall -HUP Finder
มีความนับถือเหมือนกัน ใน OS X Finder จะเปิดใช้งานอีกครั้ง แต่จะอ่านไฟล์การกำหนดค่าอีกครั้ง นี่อาจไม่ใช่กรณีที่แอปพลิเคชันที่ทำงานอยู่ไม่มี-HUP
ฟังก์ชันในตัว ในฐานะที่เป็นโปสเตอร์ก่อนหน้านี้พูดถึง Apache มันอ่านว่าเป็นไฟล์กำหนดค่า แต่ไม่สามารถเปิดได้อีก