Saya memposting jawaban untuk topik lama yang serupa dengan jawaban dari berbagai sumber. Berikut ini adalah salinan jawaban yang disesuaikan untuk utas ini.
Karya berikut:
$ (gui_app &> /dev/null &)
Ini adalah jawaban Nathan Fellman plus pengalihan.
"&> / dev / null" mengarahkan ulang stdout dan stderr ke perangkat null. Ampersand terakhir membuat proses berjalan di latar belakang. Tanda kurung di sekitar perintah akan menyebabkan "gui_app" Anda berjalan dalam subkulit.
Melakukan ini akan melepaskan proses "gui_app" dari konsol tempat Anda menjalankan perintah ini. Jadi, bahkan jika Anda menutup emulator terminal induk jendela sedang berjalan, "gui_app" tidak akan menutup. Saya menjalankan ini kemudian melihat pohon proses dengan "pstree" perintah dan menemukan aplikasi mulai dengan cara ini akan menjadi proses anak untuk "init".
Sebagai contoh,
$ gui_app &> /dev/null &
akan menjalankan aplikasi di latar belakang, tetapi itu akan menjadi proses turunan dari proses konsol dan akan berakhir ketika Anda menutup terminal. (Meskipun keluar dari terminal melalui bash dengan menggunakan perintah keluar atau Ctrl-D akan membiarkan bash membersihkan dengan menyerahkan proses latar belakang untuk init.)
"nohup" berfungsi seperti yang disarankan NawaMan, tetapi itu mengalihkan keluaran & kesalahan ke file secara default. Seperti yang JeffG jawab, perintah "disown" (jika tersedia di shell) dapat melepaskan proses dari terminal setelah Anda memulai proses latar belakang:
$ gui_app &
$ disown
(BTW semua ini berlaku untuk bash. Saya yakin shell lain memiliki metode / sintaks lain untuk melakukan ini.)
Beberapa referensi:
Proses Pembungkaman (UNIX Power Tools)
Jika itu panggilan sederhana ke aplikasi GUI - tanpa opsi rumit dan semacamnya - sepertinya menggunakan peluncur seperti "gmrun" atau dmenu (peringatan: audio keras) juga merupakan opsi yang baik. Ikat ke kombinasi tombol. Saya belum menggunakan peluncur tetapi sudah mencoba keduanya.
CATATAN: CarlF dalam komentar dari utas lainnya melaporkan aplikasi GUI yang dimulai melalui metode "gui_app &" tidak ditutup ketika ia keluar dari terminal induk. Saya pikir kami menutup terminal dengan cara yang berbeda. Saya sedang menutup jendela terminal emulator sedang berjalan masuk. Saya pikir dia mungkin telah keluar dari terminal emulator melalui shell (perintah keluar atau Ctrl-D). Saya menguji ini dan melihat bahwa keluar melalui bash tidak menghentikan GUI dimulai sebagai proses latar belakang terminal seperti kata CarlF. Sepertinya tidak perlu proses latar belakang untuk masuk ketika diberi kesempatan untuk membersihkan. Bahkan, ini harus menjadi mekanisme di mana proses latar belakang dimulai dalam subkulit diserahkan ke init.