Biasanya ketika Anda menjalankan perintah di terminal, Anda harus menunggu sampai perintah selesai sebelum Anda dapat memasukkan yang lain. Ini disebut menjalankan perintah di proses latar depan atau latar depan. Saat sebuah proses berjalan di latar depan, proses tersebut menempati shell Anda, dan Anda dapat berinteraksi dengannya menggunakan perangkat input.
Bagaimana jika perintah membutuhkan waktu lama untuk diselesaikan, dan Anda ingin menjalankan perintah lain sementara itu? Anda memiliki beberapa pilihan yang Anda inginkan. Opsi yang paling jelas dan langsung adalah memulai sesi shell baru dan menjalankan perintah di dalamnya. Opsi lainnya adalah menjalankan perintah di latar belakang.
Proses latar belakang adalah proses/perintah yang dimulai dari terminal dan berjalan di latar belakang, tanpa interaksi dari pengguna.
Pada artikel ini, kita akan berbicara tentang proses latar belakang Linux. Kami akan menunjukkan cara memulai perintah di latar belakang dan cara menjaga proses tetap berjalan setelah sesi shell ditutup.
Jalankan Perintah Linux di Latar Belakang #
Untuk menjalankan perintah di latar belakang, tambahkan simbol ampersand (&
) di akhir perintah:
command &
ID pekerjaan shell (dilingkari dengan tanda kurung) dan ID proses akan dicetak di terminal:
[1] 25177
Anda dapat menjalankan beberapa proses di latar belakang secara bersamaan.
Proses latar belakang akan terus menulis pesan ke terminal tempat Anda menjalankan perintah. Untuk menekan stdout
dan stderr
pesan menggunakan sintaks berikut:
command > /dev/null 2>&1 &
>/dev/null 2>&1
berarti mengalihkan stdout
ke /dev/null
dan stderr
ke stdout
.
Gunakan jobs
utilitas untuk menampilkan status semua pekerjaan yang dihentikan dan pekerjaan latar belakang dalam sesi shell saat ini:
jobs -l
Outputnya termasuk nomor pekerjaan, ID proses, status pekerjaan, dan perintah yang memulai pekerjaan:
[1]+ 25177 Running ping google.com &
Untuk membawa proses latar belakang ke latar depan, gunakan fg
perintah:
fg
Jika Anda memiliki beberapa pekerjaan latar belakang, sertakan %
dan ID pekerjaan setelah perintah:
fg %1
Untuk menghentikan proses latar belakang, gunakan kill
perintah diikuti oleh ID proses:
kill -9 25177
Memindahkan Proses Latar Depan ke Latar Belakang #
Untuk memindahkan proses latar depan yang berjalan di latar belakang:
- Hentikan proses dengan mengetikkan
Ctrl+Z
. - Pindahkan proses yang dihentikan ke latar belakang dengan mengetikkan
bg
.
Tetap Jalankan Proses Latar Belakang Setelah Shell Keluar #
Jika koneksi Anda terputus atau Anda keluar dari sesi shell, proses latar belakang dihentikan. Ada beberapa cara agar proses tetap berjalan setelah sesi shell interaktif berakhir.
Salah satu caranya adalah dengan menghapus pekerjaan dari kontrol pekerjaan shell menggunakan disown
bawaan cangkang:
disown
Jika Anda memiliki lebih dari satu pekerjaan latar belakang, sertakan %
dan ID pekerjaan setelah perintah:
disown %1
Konfirmasikan bahwa pekerjaan dihapus dari tabel pekerjaan aktif menggunakan jobs -l
memerintah. Untuk membuat daftar semua proses yang berjalan, termasuk yang tidak diakui, gunakan ps aux
perintah.
Cara lain untuk menjaga proses tetap berjalan setelah shell keluar adalah dengan menggunakan nohup
.
nohup
perintah mengeksekusi program lain yang ditentukan sebagai argumennya dan mengabaikan semua SIGHUP
(menggantung) sinyal. SIGHUP
adalah sinyal yang dikirim ke suatu proses ketika terminal pengontrolnya ditutup.
Untuk menjalankan perintah di latar belakang menggunakan nohup
perintah, ketik:
nohup command &
Output perintah diarahkan ke nohup.out
berkas.
nohup: ignoring input and appending output to 'nohup.out'
Jika Anda logout atau menutup terminal, proses tidak akan dihentikan.
Alternatif #
Ada sejumlah program yang memungkinkan Anda melakukan beberapa sesi interaktif pada saat yang bersamaan.
Layar #
Screenor GNU Screen adalah program terminal multiplexer yang memungkinkan Anda untuk memulai sesi layar dan membuka sejumlah jendela (terminal virtual) di dalam sesi itu. Proses yang berjalan di Layar akan terus berjalan saat jendelanya tidak terlihat meskipun Anda terputus.
Tmux #
Tmuxis adalah alternatif modern untuk layar GNU. Dengan Tmux, Anda juga dapat membuat sesi dan membuka banyak jendela di dalam sesi itu. Sesi Tmux bersifat persisten, yang berarti bahwa program yang berjalan di Tmux terus berjalan meskipun Anda menutup terminal.
Kesimpulan #
Untuk menjalankan perintah di latar belakang, sertakan &
di akhir perintah.
Saat Anda menjalankan perintah di latar belakang, Anda tidak perlu menunggu sampai selesai sebelum Anda dapat menjalankan yang lain.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.