Ben yayınlanmıştır bir cevap çeşitli kaynaklardan cevapları ile benzer bir konu daha eski bir konuya. Aşağıda bu konu için uyarlanmış cevabın bir kopyası verilmiştir.
Aşağıdaki işler:
$ (gui_app &> /dev/null &)
Bu Nathan Fellman'ın cevabı artı yönlendirmesi.
"&> / dev / null" stdout ve stderr komutunu null cihaza yönlendirir. Son işaret ve işlemin arka planda çalışmasını sağlar. Komut etrafındaki parantezler "gui_app" in bir alt kabukta çalışmasına neden olur.
Bunu yapmak, "gui_app" işlemini bu komutu çalıştırdığınız konsoldan ayırır. Pencereyi kapatsanız bile, üst terminal emülatörü çalışıyorsa, "gui_app" kapanmaz. Bunu koştum daha sonra "pstree" komutuyla işlem ağacına baktım ve bu yolla başlayan bir uygulamanın "init" için alt işlem olacağı bulundu.
Örneğin,
$ gui_app &> /dev/null &
arka planda uygulamayı çalıştıracak, ancak konsol işleminin alt işlemi olacak ve terminali kapattığınızda sona erecek. (Çıkış komutunu veya Ctrl-D'yi kullanarak terminalden bashtan çıkmasına rağmen, arkaplan işlemini yerine koymak için bash'nin temizlenmesini sağlar.)
"nohup", NawaMan'ın önerdiği gibi çalışır, ancak çıkış ve hatayı varsayılan olarak bir dosyaya yönlendirir. JeffG'nin yanıtladığı gibi, "disown" komutu (kabukta mevcutsa) bir arka plan işlemi başlattıktan sonra işlemi terminalden ayırabilir:
$ gui_app &
$ disown
(BTW bunların tümü bash için geçerlidir. Diğer kabukları bunun için başka yöntemlere / sözdizimine sahip olduklarından eminim.)
Bazı referanslar:
Uzaklaştırma Süreçleri (UNIX Elektrikli El Aletleri)
Bir GUI uygulamasına yapılan basit bir çağrıysa - karmaşık seçenekler ve benzerleri olmadan - "gmrun" veya dmenu gibi ( başlatıcı : yüksek ses) başlatıcı kullanmak da iyi bir seçenektir. Bir tuş kombinasyonuna bağlayın. Henüz bir başlatıcısı kullanmıyorum, ancak bu ikisini denedim.
NOT: Diğer iş parçacığı raporlarının yorumlarında CarlF, GUI uygulamalarının "gui_app &" yöntemi ile başlatıldığını, ana terminalden çıktığında kapanmadığını bildirdi. Sanırım terminali farklı yollarla kapatıyorduk. Terminal emülatörünün içinde çalıştığı pencereyi kapatıyordum. Terminal emülatörünü kabuktan (çıkış komutu veya Ctrl-D) geçiyor olabilir. Bunu test ettim ve bash aracılığıyla çıkmanın GUI'yi durdurmadığını gördüm, CarlF'ın dediği gibi terminalin arka plan süreci olarak başladım. Arka plan işlemlerini, temizlenme şansı verildiği zaman başlatmaya kalkar gibi görünüyor. Aslında, bu bir alt kabukta arka plan işleminin başlatılmaya başlandığı mekanizma olmalıdır.