คำตอบ:
Control+ Zใช้สำหรับหยุดกระบวนการโดยส่งสัญญาณSIGSTOP
ซึ่งโปรแกรมไม่สามารถดักจับได้ ในขณะที่Control+ Cใช้ในการฆ่ากระบวนการด้วยสัญญาณSIGINT
และสามารถถูกดักโดยโปรแกรมเพื่อให้สามารถทำความสะอาดตัวเองก่อนที่จะออกหรือไม่ออกเลย
หากคุณระงับกระบวนการสิ่งนี้จะปรากฏขึ้นในเชลล์เพื่อบอกคุณว่ากระบวนการถูกระงับ:
[1]+ Stopped yes
อย่างไรก็ตามถ้าคุณสังหารใครคุณจะไม่เห็นการยืนยันใด ๆ นอกจากถูกส่งกลับไปที่ shell prompt เมื่อคุณหยุดกระบวนการคุณสามารถทำสิ่งต่าง ๆ ด้วยเช่นกัน ตัวอย่างเช่นเรียกใช้สิ่งนี้:
fg
ด้วยโปรแกรมที่ถูกระงับจะนำมันกลับมาที่พื้นหน้า
และเรียกใช้คำสั่ง
bg
ด้วยโปรแกรมที่ถูกระงับจะอนุญาตให้มันทำงานในพื้นหลัง (เอาท์พุทของโปรแกรมจะยังคงไปที่ TTY)
หากคุณต้องการฆ่าโปรแกรมที่ถูกระงับคุณไม่จำเป็นต้องนำมันกลับมาfg
ก่อนคุณสามารถทำได้โดยใช้คำสั่ง:
kill %1
หากคุณมีคำสั่งที่ถูกระงับหลายคำสั่งให้เรียกใช้
jobs
จะแสดงรายการพวกเขาเช่นนี้:
[1]- Stopped pianobar
[2]+ Stopped yes
การใช้%#
ที่#
เป็นจำนวนงาน (หนึ่งในวงเล็บมาจากการjobs
ส่งออก) กับbg
, fg
หรือkill
สามารถนำมาใช้ในการทำการดำเนินการเกี่ยวกับงานที่
amarok
และเรียกใช้killall amarok
หรือเรียกใช้ps aux
และหากระบวนการ id kill {process id}
ที่อยู่ถัดจากชื่อปฏิบัติการและการทำงาน
Ctrl + Z ระงับกระบวนการด้วย SIGTSTP คุณสามารถดำเนินการต่อในภายหลัง Ctrl + C ฆ่ากระบวนการด้วย SIGINT ซึ่งจะยุติกระบวนการยกเว้นว่าเป้าหมายนั้นถูกจัดการ / เพิกเฉยดังนั้นคุณจึงไม่สามารถดำเนินการต่อได้ นอกจากนี้ยังมี SIGSTOP ซึ่งสามารถส่งได้kill()
และกระบวนการไม่สามารถดักจับได้ SIGCONT เป็นคู่หูกับทั้ง SIGSTOP และ SIGTSTP ซึ่งจะยกเลิกการระงับกระบวนการชั่วคราว
kill()
ช่วยให้คุณส่งSIGSTOP
ไปยังกลุ่มได้ดี
CTRL + Z หยุดงาน (หยุดชั่วคราว)
CTRL + C ยุติงาน
ด้วย CTRL + C คุณไม่สามารถดำเนินการต่อได้ แต่ด้วย CTRL + Z งานที่สามารถดำเนินการต่อได้โดยเพียงแค่ป้อนคำสั่งที่ promt:
fg %1
หากคุณมีหลายกระบวนการหยุดชั่วคราวคุณควรทำ
jobs
เพื่อดูผลลัพธ์และเลือกหมายเลขที่เหมาะสมเพื่อดำเนินการต่อเช่น
fg %3
ดำเนินการงานที่สามต่อในรายการ นอกจากนี้คุณยังสามารถมีงานที่ทำงานในพื้นหลังด้วย
bg %n
โดยที่ n คือหมายเลขงาน
Cntrl + Z pause the currently running process.
และ
Cntrl + C simply terminates the running process.
เมื่อใช้ Cntrl + C คุณจะไม่สามารถดำเนินการต่อได้ เมื่อใช้ Cntrl + Z คุณสามารถดำเนินการต่อได้
ใช้ fg% 1 เพื่อดำเนินการต่อ
CTRL+ Zหยุด (หยุดชั่วคราว) งาน
CTRL+ Cยุติงาน
ด้วยCTRL+ Cคุณจะไม่สามารถดำเนินการกระบวนการต่อได้ แต่ด้วยCTRL+ Zงานที่สามารถดำเนินการต่อได้โดยเพียงแค่ป้อนที่พรอมต์คำสั่ง:
fg% 1
หากคุณมีหลายกระบวนการหยุดชั่วคราวคุณควรทำ
งาน
เพื่อดูผลลัพธ์
คำตอบก่อนหน้านี้ถูกต้อง แต่ด้วยเหตุผลที่ไม่ทราบบางอย่าง Ctrl-Z ระงับกระบวนการลูกทั้งหมดเช่นกัน แต่ killall -SIGSTOP ... ระงับกระบวนการ front-front (parent) เท่านั้นและปล่อยให้เด็กทำงานตามที่ต้องการ
stty
คำสั่ง ยกตัวอย่างเช่นหรือstty susp ^Z
stty intr ^C