GNU/Linux >> Belajar Linux >  >> Linux

Cara Menjalankan Perintah Linux di Latar Belakang

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:

  1. Hentikan proses dengan mengetikkan Ctrl+Z .
  2. 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.


Linux
  1. Menjalankan Perintah Linux di Latar Belakang dan Latar Depan

  2. A sampai Z Perintah Linux

  3. Perintah gema Linux

  1. Cara menggunakan Perintah Su di Linux

  2. Cara membatasi perintah pengguna di Linux

  3. Bagaimana cara menjalankan skrip di latar belakang (linux openwrt)?

  1. Cara Menjalankan Perintah dengan Batas Waktu (Timeout) Di Linux

  2. linux:cara menjalankan perintah di direktori tertentu

  3. Bagaimana saya bisa merekam perintah Linux?