nohup - Run Commands in the Background - Linux CLI
สารบัญ:
- วิธีใช้คำสั่ง nohup
- เรียกใช้คำสั่งในพื้นหลัง
- การเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์
- ทางเลือก
- จอภาพ
- Tmux
- บอกปัด
- ข้อสรุป
คำสั่ง
nohup
เรียกใช้งานโปรแกรมอื่นที่ระบุเป็นอาร์กิวเมนต์และละเว้น
SIGHUP
(hangup) ทั้งหมด
SIGHUP
เป็นสัญญาณที่ถูกส่งไปยังกระบวนการเมื่อปิดเทอร์มินัลการควบคุม
โดยปกติเมื่อคุณรันโปรแกรมผ่าน SSH หากการเชื่อมต่อของคุณลดลงหรือคุณออกจากระบบเซสชันจะถูกยกเลิกและกระบวนการทั้งหมดที่ดำเนินการจากเทอร์มินัลจะหยุด นี่คือที่ที่คำสั่ง
nohup
มีประโยชน์ จะไม่สนใจสัญญาณ Hangup ทั้งหมดและกระบวนการจะยังคงทำงานต่อไป
วิธีใช้คำสั่ง nohup
ไวยากรณ์สำหรับคำสั่ง
nohup
มีดังนี้:
nohup COMMAND
คำสั่งไม่ยอมรับตัวเลือกอื่น ๆ ยกเว้น
--help
และ
--version
มาตรฐาน
ลองมาดูตัวอย่างต่อไปนี้:
nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'
nohup
รันคำสั่ง
mycommand
ในส่วนหน้าและเปลี่ยนทิศทางเอาต์พุตคำสั่งไปยังไฟล์
nohup.out
ไฟล์นี้ถูกสร้างขึ้นในไดเรกทอรีการทำงานปัจจุบัน หากผู้ใช้ที่รันคำสั่งไม่มีสิทธิ์ในการเขียนไปยังไดเร็กทอรีการทำงานไฟล์จะถูกสร้างในโฮมไดเร็กทอรีของผู้ใช้
หากคุณออกจากระบบหรือปิดเทอร์มินัลกระบวนการจะไม่ถูกยกเลิก
เรียกใช้คำสั่งในพื้นหลัง
การใช้
nohup
ในเบื้องหน้านั้นไม่มีประโยชน์มากเพราะคุณจะไม่สามารถโต้ตอบกับเชลล์ได้จนกว่าคำสั่งจะเสร็จสิ้น
ในการรันคำสั่งในพื้นหลังให้ใส่เครื่องหมาย
&
ท้ายคำสั่ง:
nohup mycommand &
เอาต์พุตประกอบด้วยเชลล์งาน ID (ล้อมรอบด้วยวงเล็บ) และ ID กระบวนการ:
25177
คุณสามารถใช้ ID งานเพื่อนำคำสั่งไปยังเบื้องหน้าโดยใช้คำสั่ง
fg
หากด้วยเหตุผลบางอย่างที่คุณต้องการยกเลิกกระบวนการใช้คำสั่ง
kill
ตามด้วย ID กระบวนการ:
การเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์
โดยดีฟอลต์
nohup
เปลี่ยนทิศทางเอาต์พุตคำสั่งไปยังไฟล์
nohup.out
หากคุณต้องการเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์อื่นให้ใช้การเปลี่ยนเส้นทางเชลล์มาตรฐาน
ตัวอย่างเช่นหากต้องการเปลี่ยนทิศทางเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานไปยัง
mycommand.out
คุณควรใช้:
nohup mycommand > mycommand.out 2>&1 &
ในการเปลี่ยนทิศทางเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานไปยังไฟล์ต่าง ๆ:
nohup mycommand > mycommand.out 2> mycommand.err &
ทางเลือก
มีโปรแกรมทางเลือกหลายโปรแกรมที่คุณสามารถใช้เพื่อหลีกเลี่ยงคำสั่งที่จะถูกยกเลิกเมื่อคุณปิดเครื่องหรือยกเลิกการเชื่อมต่อ
จอภาพ
Screen หรือ GNU Screen เป็นโปรแกรม multiplexer เทอร์มินัลที่ช่วยให้คุณเริ่มเซสชันของหน้าจอและเปิดหน้าต่าง (เทอร์มินัลเสมือน) จำนวนเท่าใดก็ได้ภายในเซสชันนั้น กระบวนการที่ทำงานในหน้าจอจะยังคงทำงานต่อไปเมื่อหน้าต่างของพวกเขาไม่ปรากฏแม้ว่าคุณจะถูกตัดการเชื่อมต่อ
Tmux
Tmux เป็นทางเลือกที่ทันสมัยในหน้าจอ GNU ด้วย Tmux คุณสามารถสร้างเซสชันและเปิดหลายหน้าต่างภายในเซสชันนั้นได้ เซสชัน Tmux นั้นยังคงอยู่ซึ่งหมายความว่าโปรแกรมที่ทำงานใน Tmux จะยังคงทำงานต่อไปแม้ว่าคุณจะปิดเครื่องก็ตาม
บอกปัด
disown
เป็นเชลล์บิวด์อินที่จะลบงานเชลล์ออกจากการควบคุมงานของเชลล์ ซึ่งแตกต่างจาก
nohup
คุณสามารถใช้
disown
ในกระบวนการที่กำลังรันอยู่ได้
ข้อสรุป
nohup
ช่วยให้คุณสามารถป้องกันคำสั่งจากการยกเลิกเมื่อคุณออกจากระบบหรือออกจากสถานี
คำสั่ง linux พื้นฐาน
การรู้วิธีใช้บรรทัดคำสั่งจะมีประโยชน์มาก ในบทความนี้เราจะดำเนินการตามคำสั่ง Linux ที่ใช้บ่อยที่สุดที่ผู้ดูแลระบบ Linux ใช้เป็นประจำทุกวัน
คำสั่ง Chmod ใน linux (การอนุญาตไฟล์)
ใน Linux การเข้าถึงไฟล์นั้นได้รับการจัดการผ่านการอนุญาตไฟล์คุณสมบัติและความเป็นเจ้าของ บทช่วยสอนนี้ครอบคลุมถึงวิธีการใช้คำสั่ง chmod เพื่อเปลี่ยนสิทธิ์การเข้าถึงของไฟล์และไดเรกทอรี
คำสั่ง Chgrp ใน linux (เปลี่ยนกลุ่ม)
ใน Linux แต่ละไฟล์จะเชื่อมโยงกับเจ้าของและกลุ่มและมีสิทธิ์ที่กำหนดว่าผู้ใช้คนใดสามารถอ่านเขียนหรือดำเนินการไฟล์ คำสั่ง chgrpc เปลี่ยนความเป็นเจ้าของกลุ่มของไฟล์ที่กำหนด