สัญลักษณ์แอมเปอร์แซนด์ (&) มีความหมายอย่างไรกับ `nohup '


11

ฉันได้เห็นตัวอย่างมากมายที่&จุดสิ้นสุดของสตริงคำสั่ง แต่ฉันไม่สามารถหาคำอธิบายเกี่ยวกับสิ่งที่มันทำ มันไม่ได้อยู่ในnohup's manหน้า นี่เป็นสิ่งที่เปลือก?

ไม่ว่าจะใช้&หรือไม่ก็ตามฉันพบว่ากระบวนการใด ๆ ที่ทำงานด้วยnohupดูเหมือนว่าจะมีภูมิคุ้มกันต่อสัญญาณแฮงค์ใด ๆ


1
"ฉันพบว่ากระบวนการใด ๆ ที่ทำงานโดยไม่มี nohup ดูเหมือนว่าจะแสดงภูมิคุ้มกันต่อสัญญาณ Hangup ใด ๆ " นั่นคือสิ่งที่ nohup มีไว้สำหรับ
ซามูเอลเอ็ดวินวอร์ด

ตกลงฉันขออธิบาย: ตัวอย่างเดียวที่ฉันเห็นใช้&ดังนั้นฉันไม่แน่ใจว่า&เป็นตัวดัดแปลงหรือการโต้เถียงที่nohupทำตัวต่างไปหรือไม่
ชาดแฮร์ริสัน

1
นั่นเป็นสิ่งที่ควรสงสัย ในความเป็นจริงมันไม่ได้ปรับเปลี่ยนพฤติกรรม nohup (nohup ไม่แม้แต่จะเห็นมัน) แต่ปรับเปลี่ยนพฤติกรรมของเชลล์
ซามูเอลเอ็ดวินวอร์ด

nohup & -> ไม่มี Hangup และทำพื้นหลัง ตั้งแต่สมัยก่อน ๆ ของโมเด็มและเทอร์มินัลอนุกรม เมื่อเทอร์มินัลและโมเด็มของฉันออฟไลน์อยู่ให้ดำเนินการสิ่งนี้ในพื้นหลังเพื่อให้งานนั้นเสร็จสิ้นเมื่อฉันออนไลน์ในครั้งต่อไป
Fiasco Labs

คำตอบ:


19

จากmanpage ทุบตี :

หากคำสั่งถูกยกเลิกโดยตัวควบคุม & เชลล์จะเรียกใช้งานคำสั่งในพื้นหลังเป็นเชลล์ย่อย เชลล์ไม่รอให้คำสั่งเสร็จสิ้นและสถานะการส่งคืนคือ 0

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


4
ฉันเห็นคุณโพสต์คำตอบที่ดีเมื่อเร็ว ๆ นี้และสมองของฉันจะแปลชื่อผู้ใช้ของคุณเป็น McGuyver ไม่แน่ใจว่าทำไมฉันถึงรู้สึกต้องการที่จะบอกคุณนี้
MDMarra

1
@MDMarra ฉันจะใช้เป็นคำชม ;-)
mgorven

1
@MDMarra อย่างน้อยคุณไม่คิดว่า: "McGruber"
Ward - Reinstate Monica

7

การใช้เครื่องหมายและ (&) จะใช้คำสั่งในกระบวนการลูก (ลูกไปยังเซสชันทุบตีปัจจุบัน) อย่างไรก็ตามเมื่อคุณออกจากเซสชันกระบวนการลูกทั้งหมดจะถูกฆ่า

การใช้ nohup + เครื่องหมายและ (&) จะทำสิ่งเดียวกันยกเว้นเมื่อสิ้นสุดเซสชันผู้ปกครองของกระบวนการลูกจะถูกเปลี่ยนเป็น "1" ซึ่งเป็นกระบวนการ "init" ซึ่งจะเป็นการป้องกันเด็กจากการถูกฆ่า


3

ใช่มันเป็นสิ่งที่เชลล์ - มันรันคำสั่งในพื้นหลังดังนั้นคุณไม่ต้องรอให้คำสั่งปัจจุบันกลับมาก่อนที่จะออกคำสั่งเพิ่มเติม

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