Android

Bagaimana untuk menjalankan arahan linux di latar belakang

10 PERINTAH DASAR DI TERMINAL LINUX UBUNTU

10 PERINTAH DASAR DI TERMINAL LINUX UBUNTU

Isi kandungan:

Anonim

Biasanya apabila anda menjalankan arahan di terminal, anda perlu menunggu sehingga perintah selesai sebelum anda boleh memasukkan yang lain. Ini dipanggil menjalankan arahan dalam latar depan atau latar depan. Apabila proses berjalan di latar depan, ia menempati shell anda, dan anda boleh berinteraksi dengannya menggunakan peranti input.

Bagaimana jika arahan mengambil masa yang lama untuk selesai, dan anda mahu menjalankan arahan lain dalam masa yang sama? Anda mempunyai beberapa pilihan di pelupusan anda. Pilihan yang paling jelas dan mudah ialah untuk memulakan sesi shell baru dan menjalankan arahan di dalamnya. Pilihan lain adalah untuk menjalankan arahan di latar belakang.

Proses latar belakang adalah proses / perintah yang bermula dari terminal dan berjalan di latar belakang, tanpa interaksi dari pengguna., kita akan bercakap tentang proses latar belakang adalah Linux. Kami akan menunjukkan kepada anda bagaimana untuk memulakan arahan di latar belakang dan bagaimana untuk memastikan proses berjalan selepas sesi shell ditutup.

Jalankan Command Linux di Latar Belakang

Untuk menjalankan arahan di latar belakang, tambahkan simbol ampersand ( & ) pada akhir arahan:

command &

ID kerja shell (dikelilingi dengan tanda kurung) dan ID proses akan dicetak pada terminal:

25177

Anda boleh mempunyai beberapa proses yang berjalan di latar belakang pada masa yang sama.

Proses latar belakang akan terus menulis mesej ke terminal dari mana anda memohon perintah tersebut. Untuk menekan mesej stdout dan stderr gunakan sintaks berikut:

command > /dev/null 2>&1 &

>/dev/null 2>&1 bermakna mengalihkan stdout ke /dev/null dan stderr ke stdout .

Gunakan utiliti jobs untuk memaparkan status semua pekerjaan berhenti dan latar belakang dalam sesi shell semasa:

jobs -l

Output termasuk nombor pekerjaan, ID proses, keadaan pekerjaan, dan perintah yang memulakan tugas:

+ 25177 Running ping google.com &

Untuk membawa proses latar belakang ke latar depan, gunakan arahan fg :

fg

fg %1

Untuk menamatkan proses latar belakang, gunakan perintah kill diikuti dengan ID proses:

kill -9 25177

Pindahkan Proses Hadapan ke Latar Belakang

Untuk memindahkan proses latar belakang berjalan di latar belakang:

  1. Hentikan proses ini dengan menaip Ctrl+Z Pindahkan proses yang telah dihentikan ke latar belakang dengan menaip bg .

Pastikan Proses Latar Belakang Berlari Selepas Keluar Shell

Sekiranya sambungan anda jatuh atau anda log keluar daripada sesi shell, proses latar akan ditamatkan. Terdapat beberapa cara untuk memastikan proses berjalan selepas sesi shell interaktif berakhir.

Satu cara ialah untuk membuang kerja dari kawalan kerja shell menggunakan shell disown builtin:

disown

disown %1

Sahkan bahawa tugas itu dikeluarkan dari jadual kerja aktif menggunakan perintah jobs -l . Untuk menyenaraikan semua proses yang sedang berjalan, termasuk penggunaan yang tidak ps aux arahan ps aux .

Satu lagi cara untuk memastikan proses berjalan selepas keluar shell adalah menggunakan nohup .

Perintah nohup melaksanakan program lain yang dinyatakan sebagai hujahnya dan mengabaikan semua isyarat SIGHUP (hangup). SIGHUP adalah isyarat yang dihantar ke proses apabila terminal kawalannya ditutup.

Untuk menjalankan arahan di latar belakang menggunakan perintah nohup , ketik:

nohup command &

Output arahan diarahkan ke fail nohup.out .

nohup: ignoring input and appending output to 'nohup.out'

Alternatif

Terdapat beberapa program yang membolehkan anda mempunyai sesi interaktif yang banyak pada masa yang sama.

Skrin

Skrin atau Skrin GNU adalah program multiplexer terminal yang membolehkan anda memulakan sesi skrin dan membuka beberapa tingkap (terminal maya) dalam sesi itu. Proses yang berjalan di Skrin akan terus berjalan apabila tetingkap mereka tidak kelihatan walaupun anda terputus.

Tmux

Tmux adalah alternatif moden untuk skrin GNU. Dengan Tmux, anda juga boleh membuat sesi dan buka beberapa tetingkap dalam sesi itu. Sesi Tmux adalah berterusan, yang bermaksud bahawa program yang berjalan di Tmux terus berjalan walaupun anda menutup terminal.

Kesimpulannya

Untuk menjalankan arahan di latar belakang, sertakan & pada akhir arahan.

Apabila anda menjalankan arahan di latar belakang, anda tidak perlu menunggu sehingga selesai sebelum anda boleh melaksanakan yang lain.

nohup fg bg jobs disown terminal