ฉันรันโปรแกรมมากมายใน Ubuntu จากเทอร์มินัล แต่ฉันต้องการที่จะสามารถใช้งานเทอร์มินัลต่อไปหลังจากที่ฉันเปิดโปรแกรม ฉันจะวางโปรแกรมไว้ในพื้นหลังเพื่อไม่ต้องเปิดหน้าต่างอื่นได้อย่างไร
ฉันรันโปรแกรมมากมายใน Ubuntu จากเทอร์มินัล แต่ฉันต้องการที่จะสามารถใช้งานเทอร์มินัลต่อไปหลังจากที่ฉันเปิดโปรแกรม ฉันจะวางโปรแกรมไว้ในพื้นหลังเพื่อไม่ต้องเปิดหน้าต่างอื่นได้อย่างไร
คำตอบ:
มีหลายวิธีในการรันโปรแกรมเทอร์มินัลและใช้งานเทอร์มินัลต่อไป:
&
คำสั่งที่คุณเรียกใช้ โปรดระวังว่าคุณจะไม่เห็นข้อความที่ส่งออกไปยังเทอร์มินัลเช่นข้อความแสดงข้อผิดพลาดbg
สิ่งนี้มีผลเช่นเดียวกับการทำงานcommand &
nohup command &
แล้วกด Enter (ขอบคุณccpizzaดูความคิดเห็นด้านล่าง)อย่างไรก็ตามการกดAlt- F2แล้วเรียกใช้คำสั่งของคุณจาก GUI นั้นถือว่าเป็นแนวปฏิบัติที่ดีที่สุด - ไม่มีเทอร์มินัลเลย!
หมายเหตุว่าเมื่อใช้&
(ไม่nohup
) ปิดสถานีจะยังคงยกเลิกการสมัครเว้นแต่คุณจะทำงานdisown
หลังจากนั้น
แก้ไข:ดูเหมือนว่าการใช้nohup
บางครั้งจะทิ้งมูลไว้ในโฟลเดอร์บ้านของคุณ สิ่งที่ปกติจะถูกบันทึกลงในเทอร์มินัลจะถูกบันทึกเป็นไฟล์ใน ~ /
~~
วิธีง่าย ๆ ในการเรียกใช้โปรแกรมในพื้นหลังคือprogram-name & disown
ซึ่งจะส่งคุณไปยังเทอร์มินัลซึ่งสามารถปิดได้โดยไม่ต้องฆ่ากระบวนการ
program-name & disown
เป็นทางออกที่ดี
คุณสามารถใช้setsid
เพื่อเรียกใช้โปรแกรมในเซสชั่นใหม่ด้วยนอกเหนือจาก&>/dev/null
ดังนั้นคุณจะไม่ได้รับข้อความบันทึกใด ๆ
ดังนั้นมันจะเป็นเช่นนั้น
setsid program-name &>/dev/null
ใช้screen
คำสั่งคุณสามารถเปิดเซสชันเทอร์มินัลหลายเซสชันโดยใช้หน้าต่างเดียวแล้วแตะ
apt-get install screen (On Debian based Systems)
yum install screen (On RedHat based Systems)
screen
(เริ่มหน้าจอใหม่)
[Your command]
Ctrl+A d
เพื่อออกจากหน้าจอ ... และอื่น ๆ
คุณสามารถเรียกใช้ในเทอร์มินัลเสมือนเช่นtmux
(หรือscreen
แต่ฉันได้ยินมาว่ามันไม่ได้รับการบำรุงรักษาอีกต่อไป)
# This ataches your terminal to a virtual terminal
tmux
run_your_command
# This detaches your virtual terminal (previous command can be running)
CTRL-b d
run_other_commands # on your terminal
# re-attach the virtual terminal to see the status of run_your_command
tmux a
tmux
สามารถทำได้มากขึ้นเช่น:
https://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/
nohup firefox&
เพื่อป้องกันไม่ให้ฆ่ากระบวนการเด็กหลังจากที่สถานีถูกปิดคุณสามารถเริ่มต้นแอปของคุณเป็น