ฉันจะรักษาคำสั่งที่ฉันเริ่มต้นจากเชลล์ให้ทำงานได้อย่างไรถ้าฉันออกจากเชลล์?


12

มีวิธีใดบ้างที่จะรักษาคำสั่งที่เริ่มต้นจากเชลล์เมื่อทำงานหลังจากล็อกเอาต์จากเชลล์?

คำตอบ:


11
  • ในการใส่แอปพลิเคชันลงในพื้นหลังให้ใช้&:

    command &
    
  • หากคุณต้องการที่จะปิดสถานีและให้ทำงานโปรแกรมที่คุณสามารถใช้ตัวเลือกหลาย, และscreen ติดตั้งหน้าจอdtach ติดตั้ง dtachnohup

    nohup command &
    
  • หน้าจอมีประโยชน์เนื่องจากคุณสามารถเริ่มเซสชันใหม่ได้และ dtach ก็สนุกเช่นกัน

  • ดูที่ลิงค์ต่อไปนี้สำหรับข้อมูลเพิ่มเติม


ไม่เพิ่ม&คำสั่งที่ท้ายคำสั่งด้วยหรือไม่
theTuxRacer

2
@ Kaustubh-P การใช้ & มักเป็น habbit ที่ดีในการปิดเทอร์มินัลโดยใช้คำสั่ง 'exit' โดยไม่กดปุ่ม X close และทำให้คำสั่งรันในพื้นหลัง แต่ถ้าพาเรนต์ปิด ที่ยังคงสามารถบังคับให้โปรแกรมพื้นหลังออกได้
karthick87

5

ใช้คำสั่ง nohup ดังนี้:

nohup gedit /home/user/file.txt &

วิธีการลบ nohup: ละเว้นการป้อนข้อมูลและเปลี่ยนเส้นทาง stderr ไปยัง stdout
Amruth A

5

ที่มีประโยชน์ (ทุบตี?) disownคำสั่ง สิ่งที่ดีเกี่ยวกับมันคือมันใช้ได้กับงานที่กำลังทำงานอยู่ (โดยวิธีการที่คุณปฏิเสธงานไม่ใช่กระบวนการดังนั้นคุณต้องทำctrl-Z, bgก่อนที่จะทำงานกับงานของคุณตัวอย่างเช่นลองนึกภาพตัวเองทำสิ่งต่อไปนี้:

local % ssh some.where.com
remote % verylongscript.sh

ตอนนี้คุณรู้แล้วว่าคุณต้องไป แต่ไม่ต้องการให้สคริปต์ถูกฆ่าเมื่อออกไปดังนั้นคุณ

ctrl-Z
remote % bg
remote % disown
remote % exit
local %

ในตอนนี้remoteสคริปต์ของคุณยังคงทำงานอยู่


1

ฉันใช้

nohup mycommand &

ตัวอย่างเช่นเมื่อต้องการเปิดเซิร์ฟเวอร์เสมือน VirtualBox ฉันพิมพ์ต่อไปนี้ในเปลือกระยะไกล (ซึ่งฉันปิดแล้ว):

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