İşlemleri askıya alma ve sürdürme


143

Bash terminalinde herhangi bir çalışan işlemi askıya almak için Control+ Ztuşuna basabilirim ... daha sonra fgişlemi devam ettirmek için yazabilirim .

Sadece PID'im varsa bir işlemi askıya almak mümkün müdür? Ve eğer öyleyse, hangi komutu kullanmalıyım?

Gibi bir şey arıyorum:

suspend-process $PID_OF_PROCESS

ve sonra devam etmek için

resume-process $PID_OF_PROCESS

Yanıtlar:


172

killİşlemi durdurmak için kullanabilirsiniz .

Sürece bir 'kibar' duruş için (bunu normal kullanım için tercih edin), SIGTSTP’yi gönderin:

kill -TSTP [pid]

Zor bir duruş için SIGSTOP'u gönderin:

kill -STOP [pid]

PID ile durdurmaya çalıştığınız işlem, kabuğunuzun iş tablosundaysa, orada görülebilir, ancak işlem fgyeniden yapılana kadar sonlandırılabilir .

Sürecin yürütülmesine devam etmek için SIGCONT gönderildi:

kill -CONT [pid]

25
Başka nedenler olmadığı sürece, bazı uygulamalar SIGTSTP'yi özel olarak ele aldığından SIGTSTP'yi SIGSTOP yerine tercih ederim. Örneğin, eğer scp bir ilerleme çubuğu gösteriyorsa, SIGTSTP askıya almadan önce terminal modunu temizlemesine neden olur, ancak SIGSTOP gönderirseniz, bunu yapma şansınız olmaz.
efemient,

3
@ephemient SIGTSTP'yi denedim, terminali temizlerken onun hakkında söylediklerini gördüm. SIGTSTP'nin açıklaması için teşekkürler, yeni şeyler öğrenmek için iyi olur :)
Steve Burdine

2
Ayrıca,% sembolünü ve ardından iş numarasını (çalıştırarak bulabileceğiniz jobs) kullanarak [pid] değerine referans verebileceğinizi unutmayın . Öyleyse gidersin:kill -TSTP %1
Karoh


43

Bunun için killkomutu kullanmalısın .

Daha ayrıntılı olmak için - doğru sinyali , yani

$ kill -TSTP $PID_OF_PROCESS

Süreci askıya almak için ve

$ kill -CONT $PID_OF_PROCESS

devam ettirdiğin için. Burada belgelendi .


Acaba tarihin hangi kazası bu cevabın daha az oy almasına neden oldu? Cevaplar neredeyse aynıydı ve bu ilk geldi ...
Wildcard

7
@Wildcard, cevabı oluşturduğumda biraz acelem vardı, bu yüzden temelde sadece ilk kısmı içeriyordu kill -TSTP(nasıl askıya alınacağını). 1/2 yıl sonra, yani 2011, cevabımı tekrar ziyaret ettim ve eksik olduğunu fark ettim. Böylece onu düzenledim ve kill -CONTparçayı da ekledim . Bu, Steve'in cevabına kıyasla oylardaki farkı açıklamalı.
maxschlepzig
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.