Nohup เป็นคำสั่งที่ใช้ในการเรียกใช้กระบวนการ (งาน) บนเซิร์ฟเวอร์และให้ดำเนินการต่อหลังจากที่คุณออกจากระบบหรือสูญเสียการเชื่อมต่อกับเซิร์ฟเวอร์ Nohup เหมาะที่สุดสำหรับงานระยะยาว Nohup มีอยู่ในเซิร์ฟเวอร์คอมพิวเตอร์ Unix ทั้งหมด
การใช้ nohup ใน Linux คืออะไร?
nohup ย่อมาจาก no hang-up เป็นยูทิลิตี้ Linux ที่ ทำให้กระบวนการทำงานต่อไปแม้หลังจากออกจากเทอร์มินัลหรือเชลล์. มันป้องกันกระบวนการจากการรับสัญญาณ SIGHUP (สัญญาณวางสาย); สัญญาณเหล่านี้จะถูกส่งไปยังกระบวนการเพื่อยุติหรือสิ้นสุดกระบวนการ
ทำไมเราถึงต้องการ nohup?
เมื่อเรียกใช้การนำเข้าข้อมูลขนาดใหญ่บนรีโมตโฮสต์ คุณอาจต้องการใช้ nohup to ตรวจสอบให้แน่ใจว่าการตัดการเชื่อมต่อจะไม่ทำให้คุณเริ่มต้นใหม่เมื่อคุณเชื่อมต่อใหม่. นอกจากนี้ยังใช้เมื่อนักพัฒนาไม่สร้างภูตบริการอย่างถูกต้อง ดังนั้นคุณต้องใช้ nohup เพื่อให้แน่ใจว่าจะไม่ถูกฆ่าเมื่อคุณออกจากระบบ
ฉันจะรันสคริปต์ nohup ใน Linux ได้อย่างไร
ไวยากรณ์คำสั่ง nohup:
command-name : เป็นชื่อของเชลล์สคริปต์หรือชื่อคำสั่ง คุณสามารถส่งผ่านอาร์กิวเมนต์ไปยังคำสั่งหรือเชลล์สคริปต์ได้ & : nohup ไม่ได้ใส่คำสั่งที่รันในพื้นหลังโดยอัตโนมัติ คุณต้องทำอย่างชัดเจนโดย สิ้นสุดบรรทัดคำสั่งด้วยเครื่องหมาย &.
nohup กับ & ต่างกันอย่างไร?
nohup จับสัญญาณวางสาย (ดูสัญญาณ man 7 ) ในขณะที่เครื่องหมายและไม่ได้ (ยกเว้นเชลล์ถูกกำหนดค่าเป็นแบบนั้นหรือไม่ส่ง SIGHUP เลย) โดยปกติ เมื่อรันคำสั่งโดยใช้ & และออกจากเชลล์หลังจากนั้น เชลล์จะยุติคำสั่งย่อยด้วยสัญญาณแฮงค์ ( kill -SIGHUP ).
คุณใช้ disown อย่างไร?
คำสั่ง disown เป็นคำสั่งในตัวที่ใช้งานได้กับเชลล์เช่น bash และ zsh ในการใช้งาน คุณ พิมพ์ “ปฏิเสธ” ตามด้วยรหัสกระบวนการ (PID) หรือกระบวนการที่คุณต้องการปฏิเสธ.
ฉันจะรู้ได้อย่างไรว่างานกำลังดำเนินการอยู่ใน nohup?
คำตอบ 1
- คุณจำเป็นต้องรู้ pid ของกระบวนการที่คุณต้องการดู คุณสามารถใช้ pgrep หรือ jobs -l : jobs -l [1]- 3730 Running sleep 1000 & [2]+ 3734 Running nohup sleep 1000 & …
- ลองดูที่ /proc/ /fd .
คำสั่ง nohup ทำงานอย่างไร
Nohup ย่อมาจาก no hang up คือคำสั่งในระบบลีนุกซ์ที่ช่วยให้กระบวนการทำงานต่อไปแม้หลังจากออกจากเชลล์หรือเทอร์มินัลแล้ว Nohup ป้องกันกระบวนการหรืองานจากการรับสัญญาณ SIGHUP (Signal Hang UP). นี่คือสัญญาณที่ถูกส่งไปยังกระบวนการเมื่อปิดหรือออกจากเทอร์มินัล
ฉันจะเรียกใช้กระบวนการ nohup ได้อย่างไร
ในการรันคำสั่ง nohup ในพื้นหลัง เพิ่ม & (เครื่องหมายและ) ต่อท้ายคำสั่ง. หากข้อผิดพลาดมาตรฐานแสดงบนเทอร์มินัล และหากเอาต์พุตมาตรฐานไม่แสดงบนเทอร์มินัล หรือไม่ส่งไปยังไฟล์เอาต์พุตที่ระบุโดยผู้ใช้ (ไฟล์เอาต์พุตเริ่มต้นคือ nohup. out) ทั้งไฟล์ ./nohup
ทำไม nohup ไม่ทำงาน?
Re: nohup ใช้งานไม่ได้
เชลล์อาจกำลังทำงานโดยปิดการควบคุมงาน. … ผู้ใช้ควรเปลี่ยนการตั้งค่านี้ได้ เว้นแต่คุณจะใช้งานเชลล์แบบจำกัด เรียกใช้ stty -a |grep tostop หากตั้งค่าตัวเลือก "tostop" TTY งานพื้นหลังจะหยุดทันทีที่พยายามสร้างเอาต์พุตใดๆ ไปยังเทอร์มินัล
ทำไม nohup ละเว้นอินพุต?
nohup คือ บอกตรงๆ ว่าทำอะไรอยู่ คือ ละเลย ป้อนข้อมูล. “หากอินพุตมาตรฐานเป็นเทอร์มินัล ให้เปลี่ยนเส้นทางจากไฟล์ที่อ่านไม่ได้” มันกำลังทำในสิ่งที่ควรทำ โดยไม่คำนึงถึงรายการ OPTION นั่นเป็นสาเหตุที่อินพุตถูกละทิ้ง