Bash çıkarken "Durdu iş var."


3

Terminalde olduğumda (iTerm veya Terminal.app) ve arka planda çalışan işler olduğunda, yazarak exitveya logoutbana şunları verir:

There are stopped jobs.

Bu iyi ve beklenen. Sorun çalıştırırsanız olmasıdır exitveya logouttekrar (ve tekrar tekrar), aynı şeyi olsun.

isbadawi@astaire:~$ exit
logout
There are stopped jobs.
isbadawi@astaire:~$ exit
logout
There are stopped jobs.
isbadawi@astaire:~$ exit
logout
There are stopped jobs.
isbadawi@astaire:~$ exit
logout
There are stopped jobs.
isbadawi@astaire:~$ exit
logout
There are stopped jobs.
isbadawi@astaire:~$ exit
logout
There are stopped jobs.
isbadawi@astaire:~$ exit
logout
There are stopped jobs.

Linux üzerinde bash kullandım ve buradaki davranış ikinci devam için exitveya logoutdevam edip durdurulan işleri sonlandırmak için yapıldı. Bunun yerine, bunu manuel olarak yapmak zorundayım. Davranış neden farklı ve onu aynı yapmanın bir yolu var mı?


10.9 VM'de çoğaltamıyorum, bu yüzden yapılandırma dosyalarınızı kontrol edin. Örneğin, daha yeni bir bash sürümü yüklemeyi de deneyerek deneyebilirsiniz brew install bash;echo /usr/local/bin/bash|sudo tee -a /etc/shells;chsh -s /usr/local/bin/bash.
Lri

@LaurieRanta Yükseltme bash (3.2.51 sistemden 4.3.11'e kadar) düzeltmiş görünüyor!
Ismail Badawi

Yanıtlar:


4

Durdurulan (CTRL-z ile) işleriniz varsa veya arka planda olmuş, ancak giriş beklemede durmuşsanız, orada 'jobs' komutunun ne olduğunu görebilirsiniz.

Eğer sadece bir işiniz varsa, o zaman bir 'fg' onunla etkileşimde bulunmanız veya 'CTRL-c' ile öldürmeniz için öne çıkar. Birden fazla işiniz varsa, 'fg' ile bireysel ya da özel işleri getirebilirsiniz.


İş kontrolü hakkında bilgim var (bu "el ile yap" ile neyi kastediyordum). Neden bash'in bu durumda OS X ve Linux'ta farklı davrandığını görünce soruyorum.
Ismail Badawi,
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.