Linux'ta durdurulan bir işe nasıl devam edebilirim?


343

Linux'ta durdurulan bir işe nasıl devam edebilirim? EMAC kullanıyordum ve yanlışlıkla beni konsola geri fırlatan ctrl-z'ye çarptım. 'İşleri' yazarken görebiliyorum

[*****]$ jobs
[1]+  Stopped                 emacs test_queue.cpp

Bu aslında Vim için oldukça normal bir iş akışıdır, eğer bash geçmişinizde emirleri tutmak istiyorsanız, emirlerinizi Ctrl-zyazın ve ardından devam edin. Belli ki :!ed komutuyla
Vim'den

Yanıtlar:


382

Komut fgkullanmak istediğiniz şeydir. Birden fazla durmuş iş varsa, ona bir iş numarası da verebilirsiniz.


59
başvuru için, fg "ön plan" dır. İşe "bg" ile arka planda da devam edebilirsiniz.
Sirex

261

Linux'taki genel iş kontrol komutları:

  • işler - geçerli işleri listele
  • fg - sırada sırada olan işi devam ettir
  • fg% [number] - işe devam [sayı]
  • bg - Sıradaki bir sonraki işi arka plana itin
  • bg% [number] - İşi [sayı] arkaplana itin
  • % [sayı] öldür - Numaralandırılmış işi [sayı] öldür
  • kill - [sinyal]% [sayı] - Sinyali [sinyal] iş numarasına [sayı] gönderin
  • disown% [number] - işlemi iptal et (daha fazla terminal sahibi olmayacak), bu yüzden terminal kapandıktan sonra bile komut aktif olacak.

Bu hemen hemen hepsi. Komutlarda iş numarasının yüzde yüzüne dikkat edin - işte bu, öldürdüğünüzü işler hakkında değil işlerden bahsettiğinizi söyler.


30
"% 1" öldürmekten kaçınıyorum çünkü "kill 1" olarak
yanlış yazmak

5
@ barrycarter Bu çok doğru. Genelde bir fgve a Ctrl-C;)
Majenko

6
@ barry: Bu yüzden Upstart'taki init, varsayılan olarak SIG {TERM, KILL} 'ı dikkate almaz.
Merhaba71

7
Ve tabii ki, "asla kök olarak koşma";)
barrycarter

47

Ayrıca yazabilirsiniz %<process_name>; yani, emacs'de Ctrl-Z'ye basarsanız, %emacskonsolu yazıp ön plana geri getirebilirsiniz.


Bilmek çok iyi
ZAD-Man

33

Sadece diğer cevapları eklemek için bash , fgbir iş numarası belirlerseniz atlamanızı sağlar .

Örneğin, bunlar eşdeğerdir ve en son işe devam eder:

%
%%
fg
fg %

Bu 4 numaralı işe devam ediyor:

%4
fg 4

2
Bu tür serin olsa da, hala daha kolay yazmak için bulmak fgdaha %.
rr

3
%harika, teşekkürler! Bir daktilo olarak, fgçok rahatsız edici buluyorum (aynı parmak). Ama sonra, öyle cd.
Gauthier

Ve arka planda ya bg %da sadece ile başlayabilirsiniz % &.
Wildcard

benim durumumda fg kullanmaya çalıştığımda, durdurulan işlemin göründüğünü ve hızlı bir şekilde kaybolduğunu görüyorum ve sadece <fg%> geri yüklemeyi başardı.
Lefi Tarik

20

Geçerli terminalden başlatmadıysanız ps aux | grep <process name>, işlem numarasını (pid) bulmak için kullanın , sonra devam edin:

kill -SIGCONT <pid>

(İsmine rağmen, killişlemle birbiriyle iletişim kurmasına izin veren, sürece bir sinyal göndermek için basit bir araçtır. Bir "öldürme sinyali" birçok standart sinyalden yalnızca biridir.)

Bonus ipucu: komutun sonuçlarda görünmesini []engellemek için işlem adının ilk karakterini grepkaydırın. örneğin emacssüreci bulmak , kullanmakps aux | grep [e]macs


2
Bu, durdurulmuş bir işlemi reddettiğinizde de işe yarar
mabraham

Söylendiği gibi giriş / çıkışlarına da erişebiliyor fgmusunuz?
Ciprian Tomoiagă

Bu, iş numarasıyla çalışmaktan çok daha esnek bir yaklaşımdır. Başparmak havaya.
thomp45793
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.