ย้ายโปรแกรมที่กำลังรันไปยังแบ็คกราวน์ใน bash


10

ถ้าผมใช้โปรแกรมในทุบตีผมสามารถระงับได้โดยการกด+Ctrl Zหากฉันต้องการให้โปรแกรมทำงานต่อไปฉันสามารถใช้bgคำสั่งได้ มีวิธีที่จะทำให้โปรแกรมอยู่ในพื้นหลังโดยตรงโดยไม่ต้องพิมพ์bgหรือไม่?

ชี้แจง : ฉันต้องการให้โปรแกรมอยู่ในพื้นหลังเมื่อมันทำงานอยู่โดยไม่ระงับ


2
สิ่งนี้ไม่ซ้ำกัน ฉันไม่ต้องการให้โปรแกรมทำงานต่อเมื่อปิดหน้าต่างเทอร์มินัลและฉันไม่สามารถพิมพ์คำสั่งอื่นได้ ฉันต้องการที่จะทำให้กระบวนการในพื้นหลังเมื่อมันทำงานอยู่แล้ว
Kalle Elmér

1
ใช่สิ่งนี้ไม่ซ้ำกันโปรดเปิดใหม่อีกครั้ง
saji89

ขอบคุณสำหรับทุกคนที่ช่วยในการเปิดใหม่อีกครั้ง .. @ Kalle ตอนนี้คำถามถูกเปิดอีกครั้ง
saji89

ขอบคุณมาก! ในการค้นหาคำตอบสำหรับคำถามนั้นฉันคิดว่าวิธีเดียวที่จะระงับมันไว้ก่อนแล้วจึงทำให้มันเป็นจริง
Kalle Elmér

คำตอบ:


4

ฉันไม่คิดว่าเป็นไปได้ที่จะย้ายโปรแกรมที่กำลังทำงานไปที่พื้นหลัง (ในขณะที่กระบวนการยังอยู่ในสถานะกำลังทำงาน)
อย่างไรก็ตามมีแอปพลิเคชันที่เรียกว่าGNU-Screenซึ่งคุณสามารถเรียกใช้แอปพลิเคชันบนคอนโซลได้ไม่ว่าจะเป็นเชลล์คำสั่งแบบโต้ตอบแอปพลิเคชันที่ใช้คำสาปโปรแกรมแก้ไขข้อความ ฯลฯ ภายในเทอร์มินัลเครื่องเดียว
นี่คือการสอนที่ดีบน GNU-Screen
โปรดทราบว่ามันไม่ได้ทำในสิ่งที่คุณถาม แต่ให้บริการตามวัตถุประสงค์อยู่แล้ว
ตัวอย่าง:
นี่คือการดำเนินการในสิ่งที่คุณถามโดยใช้ GNU-Screen

  1. เรียกใช้screen
    คุณจะได้รับรายละเอียดเกี่ยวกับซอฟต์แวร์กดส่งคืน
  2. ตอนนี้คุณจะเห็น terminal.However ปกติของคุณมันเป็นหน้าต่างของ screen.Type คำสั่งใด ๆ vlcที่พูด มันจะเริ่มกระบวนการภายในหน้าต่างนั้น
  3. ตอนนี้เพื่อเปิดหน้าต่างใหม่พิมพ์Ctrl+ Aจากนั้นCคุณสามารถเรียกใช้คำสั่งใหม่ได้ที่นี่โปรดทราบว่ากระบวนการที่คุณเริ่มในหน้าต่าง 1 ยังคงทำงานอยู่
  4. หากต้องการแยกออกจากหน้าจอกดCtrl+ Aจากนั้นDคุณจะกลับไปที่ termianl เดิมของคุณไม่ว่ากระบวนการใด ๆ ที่คุณเริ่มต้นจากหน้าจอจะยังคงทำงานอยู่

4

สำหรับความรู้ที่ดีที่สุดของฉันคุณสามารถเรียกใช้แล้วเพิ่ม&หลังจากนั้นเช่นนี้:myprogram &

อย่างไรก็ตามฉันอาจจะผิดมากที่นี่

[แก้ไข]:ลองดูสิ่งนี้ให้ละเอียดยิ่งขึ้นถ้าคุณเรียกใช้ข้างต้นแอปพลิเคชันจะปิดลงเมื่อคุณปิดเครื่อง หากคุณต้องการให้แอปพลิเคชันทำงานในพื้นหลังเท่าที่ฉันรู้แอปพลิเคชันจะต้องถูกเขียนในลักษณะที่รองรับการทำงานของดีมอน

[แก้ไข 2]: nohup command &ดูเหมือนจะใกล้เคียงกับสิ่งที่คุณต้องการบรรลุ Nohup จะอนุญาตให้แอปพลิเคชันทำงานและทั้งสองจะละเว้นอินพุตและเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ที่เรียกว่าnohup.outในไดเรกทอรีปัจจุบัน


ฉันไม่สนใจจริงๆถ้ามันปิดเมื่อฉันปิดหน้าต่างเทอร์มินัล สิ่งที่ฉันกำลังมองหาคือแป้นพิมพ์ลัดใน bash ที่ทำงานเหมือน Ctrl + Z แต่จะทำให้กระบวนการทำงานในพื้นหลังแทนการระงับ
Kalle Elmér

0

นี่อาจไม่ใช่คำตอบที่แท้จริง ฉันสงสัยว่าความแตกต่างของ Bash ระหว่าง Ubuntu กับ MSYS เป็นอย่างไร

ฉันใช้ MSYS และเมื่อฉันรันApplication/Chrome &มันจะไปที่กระบวนการพื้นหลังทันที ฉันสามารถใช้ทุบตี MSYS เป็นพรอมต์ต่อไปเริ่มกระพริบ

และคำถามนี้คือย้ายโปรแกรมที่กำลังใช้งานอยู่ไปยังพื้นหลังที่มีจุดประสงค์คล้ายกันหรือไม่

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