สมมติว่าgedit
เป็นโปรแกรมที่คุณต้องการรันเดี่ยว (aka. "disowned", "disentangled", "decoupled") มีหลายวิธีขึ้นอยู่กับสิ่งที่คุณต้องการทำ:
โปรแกรมกำลังทำงานอยู่
บอกปัด:
disown -h
เป็นวิธีที่จะไปถ้าคุณต้องการที่จะทำกับโปรแกรมที่ทำงานอยู่แล้ว (เช่นถ้าคุณลืมnohup
มัน) แรกที่คุณต้องหยุดมันใช้+Ctrl Zจากนั้นคุณสามารถใส่พื้นหลังโดยใช้bg [jobId]
(เช่นbg 1
) คุณจะได้รับรายการของการใช้งานที่มีรูปแบบของ jobID jobs
ของตนโดยใช้ disown -h %[jobId]
หลังจากที่คุณสามารถแยกได้จากขั้วใช้ ตัวอย่างเทอร์มินัล:
$ gedit
^Z
[1]+ Stopped gedit
$ jobs
[1]+ Stopped gedit
$ bg 1
[1]+ gedit &
$ disown -h %1
$ exit
โปรแกรมยังไม่เริ่ม
nohup
nohup
อาจไม่ปรากฏบนทุกเครื่องเสมอไป หากคุณรู้ว่าคุณต้องการแยกชิ้นส่วนก่อนคุณจะใช้:
nohup gedit &
nohup ./myprogram > foo.out 2> bar.err < /dev/null &
บางทีคุณอาจจะต้องการที่จะเปลี่ยนเส้นทางออกเปลือกเป็นอย่างดีและโปรแกรมของคุณแหล่งสัญญาณหลอกเพื่อ: คุณต้องการเปลี่ยนเส้นทางผลลัพธ์เพื่อไม่ให้รำคาญหรือใช้ในภายหลัง อินพุตแบบ null สามารถช่วยป้องกัน hickups ใน ssh เช่นนั้นได้
subshell:
คุณสามารถบรรลุผลที่คล้ายกันโดย
$ (geany >/dev/null 2>&1 &)
วงเล็บเปิด>/dev/null 2>&1
เชลล์ย่อยใหม่เพื่อเรียกใช้ gedit ระบบจะเปลี่ยนเส้นทางของเอาต์พุตเชลล์ไปที่ใด ๆ (ไม่แสดงผลลัพธ์) และ&
ในตอนท้ายทำให้กระบวนการในพื้นหลัง
เทอร์มินัลมัลติเพล็กซ์
นอกจากนี้ยังมีสถานีมัลติโดยใช้หน้าจอหรือbyobu โดยทั่วไปคุณเรียกใช้โปรแกรมในเทอร์มินัลของตนเอง ฉันสามารถแนะนำ byobu ด้วยเหตุผลอื่นเช่นกัน ด้านล่างเป็นรายการทางลัด boybu ที่อาจเป็นประโยชน์สำหรับขั้นตอนแรกของคุณ:
ที่มีประโยชน์:
- F2 สร้างหน้าต่างใหม่
- F3 ย้ายไปที่หน้าต่างถัดไป
- F4 ย้ายไปที่หน้าต่างก่อนหน้า
- F6 แยกออกจากเซสชันและออกจากระบบ
- Shift-F6 แยกออกจากเซสชัน แต่อย่าออกจากระบบ
- F7 เข้าสู่โหมดเลื่อน / ค้นหา
- Ctrl-F5 เชื่อมต่อซ็อกเก็ตหรือตัวแทน SSH / GPG ใหม่
มีประโยชน์น้อยกว่า:
- Shift-F2 แยกหน้าจอในแนวนอน
- Ctrl-F2 แยกหน้าจอในแนวตั้ง
- Shift-F3 ย้ายโฟกัสไปที่การแยกต่อไป
- Shift-F4 ย้ายโฟกัสไปที่ตัวแบ่งก่อนหน้า
- Shift-F5 ยุบแยกทั้งหมด
- F5 รีเฟรชการแจ้งเตือนสถานะทั้งหมด
- F8 เปลี่ยนชื่อหน้าต่างปัจจุบัน
- F9 เรียกใช้เมนูการตั้งค่า Byobu
- F12 คีย์ Escape ของหน้าจอ GNU
- Alt-Pageup เลื่อนดูประวัติของหน้าต่างนี้
- Alt-Pagedown เลื่อนไปข้างหน้าผ่านประวัติของหน้าต่างนี้
- Ctrl-a-! สลับการเปิดหรือปิดการป้อนคีย์ของ Byobu ทั้งหมด
The 'at' daemon และอื่น ๆ
at
เป็นเครื่องมือเล็ก ๆ ที่มีประโยชน์ที่ดีในการเรียกใช้คำสั่งในเวลาที่กำหนด สามารถ 'นำไปใช้ในทางที่ผิด' เพื่อแยกคำสั่งจากเชลล์:
echo './myprogram myoption1 myoption2' | at now
นอกจากนี้คุณสามารถดูsetsid
และstart-stop-daemon
แต่วิธีอื่นควรพอเพียง