Pindahkan program yang berjalan ke latar belakang di bash

10

Jika saya menjalankan program dalam bash, saya dapat menangguhkannya dengan menekan Ctrl+ Z. Jika saya ingin membiarkan program berjalan, saya dapat menggunakan bgperintah. Apakah ada cara untuk langsung meletakkan program di latar belakang, tanpa harus mengetik bg?

Klarifikasi : Saya ingin meletakkan program di latar belakang ketika sudah berjalan, tanpa menangguhkannya.

Kalle Elmér
sumber
2
Ini bukan duplikat. Saya tidak ingin menjalankan program ketika jendela terminal ditutup, dan saya tidak bisa mengetik perintah yang berbeda. Saya ingin meletakkan proses di latar belakang ketika sudah berjalan.
Kalle Elmér
1
ya ini bukan duplikat, harap buka kembali ini.
saji89
Terima kasih untuk semua orang yang telah membantu membuka kembali ini .. @ Salle, Pertanyaannya sekarang dibuka kembali.
saji89
Terima kasih banyak! Untuk benar-benar menemukan jawaban untuk pertanyaan itu, saya kira satu-satunya cara adalah menangguhkannya terlebih dahulu lalu latar belakangnya.
Kalle Elmér

Jawaban:

4

Saya tidak berpikir itu mungkin untuk memindahkan program yang sedang berjalan ke latar belakang (saat proses masih dalam kondisi berjalan).
Namun ada aplikasi bernama GNU-Screen , yang digunakan untuk menjalankan sejumlah aplikasi berbasis konsol - shell perintah interaktif, aplikasi berbasis kutukan, editor teks, dll .-- dalam satu terminal.
Berikut ini adalah tutorial yang bagus tentang GNU-Screen.
Perhatikan bahwa itu tidak melakukan persis apa yang Anda minta, tetapi tetap melayani tujuannya.
Contoh:
Ini adalah implementasi dari apa yang Anda minta menggunakan Layar GNU.

  1. Jalankan screen
    Anda akan mendapatkan detail tentang perangkat lunak. Tekan kembali.
  2. Sekarang, Anda akan melihat terminal normal Anda. Namun itu adalah jendela layar. Ketikkan perintah apa saja vlc. Ini akan memulai proses di dalam jendela itu.
  3. Sekarang untuk membuka jendela baru ketik Ctrl+ Adan kemudian C. Anda dapat menjalankan perintah baru di sini. Perhatikan bahwa proses yang Anda mulai di jendela 1 masih berjalan.
  4. Untuk melepaskan dari layar tekan Ctrl+ Adan kemudian D. Sekarang Anda kembali ke termianl lama Anda. Namun, proses apa pun yang Anda mulai dari layar akan tetap berjalan.
menyalakan
sumber
4

Sepengetahuan saya, Anda bisa menjalankannya dan kemudian menambahkan & setelahnya seperti ini:myprogram &

Saya mungkin sangat salah di sini.

[EDIT]: Melihat lebih dekat ke ini, jika Anda menjalankan di atas, aplikasi akan ditutup ketika Anda menutup terminal. Jika Anda ingin aplikasi berjalan di latar belakang, maka, sejauh yang saya tahu, aplikasi harus ditulis sedemikian rupa sehingga mendukung perilaku daemon.

[EDIT 2]: nohup command & tampaknya lebih dekat dengan apa yang ingin Anda capai. Nohup akan memungkinkan aplikasi untuk berjalan, dan akan mengabaikan inputnya dan mengarahkan outputnya ke file yang disebut nohup.outdalam direktori saat ini.

NlightNFotis
sumber
Saya tidak terlalu peduli jika ditutup ketika saya menutup jendela terminal. Yang saya cari hanyalah pintasan keyboard di bash yang berfungsi seperti Ctrl + Z tetapi akan membuat proses berjalan di latar belakang, alih-alih menangguhkannya.
Kalle Elmér
0

Ini mungkin bukan jawaban yang nyata. Saya heran apa bedanya Bash antara Ubuntu dengan MSYS.

Saya menjalankan MSYS dan ketika saya menjalankan Application/Chrome &, itu segera pergi ke proses latar belakang. Saya dapat menggunakan bash MSYS sebagai prompt berikutnya mulai berkedip.

Dan apakah pertanyaan ini Pindahkan program yang sedang berjalan ke latar belakang dengan maksud yang sama?

Edward Chan JW
sumber