Çalışan programı bash'da arka plana taşı


10

Eğer bash'de bir program çalıştırıyorsam Ctrl+ tuşuna basarak programı askıya alabilirim Z. Programı çalışır durumda bırakmak istersem, bgkomutu kullanabilirim . Programı yazmak zorunda kalmadan doğrudan arka plana koymanın bir yolu var mı bg?

Açıklama : Programı zaten çalışıyorken askıya almadan arka plana koymak istiyorum.


2
Bu bir kopya değil. Terminal penceresi kapalıyken bir programı çalışır durumda tutmak istemiyorum ve farklı bir komut yazamıyorum. Zaten çalışıyorken arka planda bir işlem koymak istiyorum.
Kalle Elmér

1
evet bu bir kopya değil, lütfen tekrar açın.
saji89

Bunu yeniden açmaya yardım eden tüm o çocuklar için teşekkürler .. @Kalle, Soru şimdi yeniden açıldı.
saji89

Çok teşekkürler! Aslında soru için bir cevap bulmaya gelince, tek yol önce onu askıya almak ve daha sonra arka plan yapmaktır.
Kalle Elmér

Yanıtlar:


4

Çalışan bir programı arka plana taşımak mümkün olduğunu düşünmüyorum (süreç hala çalışma durumundayken).
Bununla birlikte, GNU-Screen adlı bir uygulama var, bu uygulamayı kullanarak tek bir terminalde istediğiniz sayıda konsol tabanlı uygulamayı (interaktif komut kabukları, lanetler tabanlı uygulamalar, metin editörleri, vb.) Çalıştırabilirsiniz.
İşte GNU-Screen hakkında güzel bir eğitim .
Sorduğunuz şeyi tam olarak yapmadığını, ancak yine de amaca hizmet ettiğini unutmayın.
Örnek:
İşte GNU-Screen kullanarak sorduğunuz şeyin uygulaması.

  1. Çalıştır screen
    Yazılım hakkında ayrıntılı bilgi alacaksınız.
  2. Şimdi, normal terminalinizi göreceksiniz, ancak bir ekran penceresi olsa da, herhangi bir komutu yazın vlc. Bu pencerede işleme başlayacaktır.
  3. Şimdi yeni bir pencere açmak için Ctrl+ Ave sonra C.Burada yeni bir komut çalıştırabilirsiniz. 1. pencerede başlattığınız işlemin hala çalışmakta olduğunu unutmayın.
  4. Ekrandan ayırmak için Ctrl+ Ave sonra düğmesine basın. DArtık eski terminale geri dönersiniz. Ancak ekrandan başlattığınız herhangi bir işlem hala çalışıyor olacaktır.

4

En iyi bilgime göre, onu çalıştırabilir ve daha sonra böyle bir & sonra ekleyebilirsiniz :myprogram &

Ancak burada çok yanlış olabilirim.

[EDIT]: Buna daha yakından baktığınızda, yukarıdakileri çalıştırırsanız , terminal kapatıldığında uygulama kapanacaktır. Uygulamanın arka planda çalışmasını istiyorsanız, bildiğim kadarıyla , uygulamanın daemon davranışını destekleyecek şekilde yazılması gerekir.

[EDIT 2]: nohup command & başarmak istediğiniz şeye daha yakın görünüyor. Nohup bir uygulamanın çalışmasına izin verir ve hem girdisini yok sayar hem de çıktısını nohup.outgeçerli dizinde çağrılan bir dosyaya yönlendirir .


Terminal penceresini kapattığımda gerçekten kapalı olup olmadığı umrumda değil. Aradığım tek şey, bash'ta Ctrl + Z gibi çalışan ancak işlemi askıya almak yerine arka planda çalışmaya devam edecek bir klavye kısayolu.
Kalle Elmér

0

Bu gerçek bir cevap olmayabilir. Ben Ubuntu ile MSYS arasındaki Bash farklı ne olduğunu merak ediyorum.

MSYS çalıştırıyorum ve çalıştırdığımda Application/Chrome &, hemen arka plan işlemine gider. Bir sonraki istem yanıp sönmeye MSYS bash kullanabilirsiniz.

Ve bu sorular Çalışan programı benzer amaçlarla arka plana taşıyor mu?

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.