ถ้าคุณ ^ Z จากกระบวนการมันจะ "หยุด" คุณจะสลับกลับมาได้อย่างไร


81

ฉันตั้งใจ "หยุด" telnetกระบวนการของฉัน ตอนนี้ฉันไม่สามารถ "เปลี่ยนกลับ" เป็นมันและฉันไม่สามารถฆ่ามันได้ (มันจะไม่ตอบสนองkill 92929โดยที่ 92929 เป็นกระบวนการ)

ดังนั้นคำถามของฉันคือถ้าคุณมีกระบวนการหยุดในบรรทัดคำสั่ง linux อย่างไรคุณเปลี่ยนกลับเป็นมันหรือฆ่ามันโดยไม่ต้องหันไปkill -9?

คำตอบ:


90

วิธีที่ง่ายที่สุดคือเรียกใช้fgเพื่อนำไปยังส่วนหน้า:

$ help fg
fg: fg [job_spec]
    Move job to the foreground.

    Place the job identified by JOB_SPEC in the foreground, making it the
    current job.  If JOB_SPEC is not present, the shell's notion of the
    current job is used.

    Exit Status:
    Status of command placed in foreground, or failure if an error occurs.

หรือคุณสามารถเรียกใช้bgเพื่อให้ดำเนินการต่อในพื้นหลัง:

$ help bg
bg: bg [job_spec ...]
    Move jobs to the background.

    Place the jobs identified by each JOB_SPEC in the background, as if they
    had been started with `&'.  If JOB_SPEC is not present, the shell's notion
    of the current job is used.

    Exit Status:
    Returns success unless job control is not enabled or an error occurs.

หากคุณเพิ่งเข้าชมCtrl Zแล้วให้นำงานกลับมาทำงานfgโดยไม่มีข้อโต้แย้ง


ขอบคุณ !! ฉันคิดว่านี่คือ eq ของ Alt + Tab คุณรู้ไหมว่าสิ่งที่เกิดขึ้นโดยเร็วที่สุดเท่าที่ฉันได้fg telnetแม้ว่า มันบอกว่าTerminatedน่าจะเป็น b / c ของkillคำสั่งก่อนหน้าของฉัน
bobobobo

@bobobobo คงใช่ อย่างไรก็ตามการfgไม่จำเป็นต้องมีข้อโต้แย้งใด ๆ หากคุณเพิ่งตี^Zให้เรียกใช้fgในสถานีเดียวกันและมันจะกลับมางานที่ 1
terdon

48

คุณสามารถใช้jobsเพื่อแสดงรายการกระบวนการที่ถูกระงับ นำตัวอย่าง เริ่มต้นด้วยกระบวนการ:

$ sleep 3000  

จากนั้นคุณระงับกระบวนการ:

^Z
[1]+  Stopped                 sleep 3000

คุณสามารถแสดงรายการกระบวนการ:

$ jobs
[1]+  Stopped                 sleep 3000

และนำมันกลับมาที่เบื้องหน้า:

$ fg %1
sleep 3000

%1สอดคล้องกับ[1]บริษัท จดทะเบียนที่มีjobsคำสั่ง


18

คุณควรจะสามารถเริ่มกระบวนการที่ถูกระงับใหม่ได้โดยใช้killคำสั่งเพื่อส่งสัญญาณดำเนินการต่อจากบรรทัดคำสั่งดังนั้น:

kill -CONT 92929

สิ่งนี้จะทำให้มันกลับมาทำงานต่อได้ แต่จะไม่ถูกนำไปที่เบื้องหน้า
bahamat

@bahamat ใช่จริงมาก หนึ่งยังคงต้องfgอยู่ภายในอาคารเดิม ฉันชอบที่จะ -STOP และ -CONT gui โปรแกรมเพื่อประหยัดทรัพยากร แต่พวกเขากำลังทำงานอย่างมีประสิทธิภาพในพื้นหลังอยู่แล้ว
Geeb

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