Cara menjalankan arahan di latar belakang di linux

Cara menjalankan arahan di latar belakang di linux

Perintah atau proses berjalan di latar belakang pada sistem Linux menjadi tugas yang sama jika anda perlu membebaskan terminal anda atau putuskan dari sesi SSH. Ini terutama berlaku mengenai arahan yang berjalan lama, sama ada untuk mendengar peristiwa atau menyelesaikan tugas mereka yang panjang.

Kami mempunyai beberapa pilihan di Linux untuk menjalankan arahan di latar belakang. Dalam panduan ini, kami akan meliputi beberapa kaedah yang berbeza dan menunjukkan kepada anda cara menggunakannya melalui contoh.

Dalam tutorial ini anda akan belajar:

  • Cara meletakkan arahan berjalan ke latar belakang
  • Cara Memulakan Perintah di Latar Belakang
  • Cara Menutup Terminal dan Pastikan Kerja Latar Belakang Berjalan
  • Cara Menggunakan Perintah Skrin
Meletakkan proses ke latar belakang dan bergerak ke latar depan Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Mana -mana distro Linux
Perisian Utiliti Linux lalai, skrin
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Letakkan arahan berjalan ke latar belakang

Apabila anda melaksanakan arahan yang ingin terus berjalan untuk masa yang lama, masalahnya adalah bahawa terminal semasa anda akan didedikasikan untuk arahan. Anda tidak boleh terus menggunakan terminal, dan anda juga tidak dapat menutupnya, kerana itu akan menamatkan arahan yang sedang dijalankan.

Sekiranya anda mempunyai arahan yang berjalan, dan perlu memasukkannya ke latar belakang untuk membebaskan terminal anda, anda boleh menekan Ctrl + z di papan kekunci anda untuk menghentikan proses. Inilah contoh.

$ tidur 10000 ^z [1]+ berhenti tidur 10000 

Untuk melihat senarai pekerjaan di latar belakang, gunakan pekerjaan perintah.

$ pekerjaan -l [1]+ 1650 berhenti tidur 10000 


Untuk membawa pekerjaan kembali ke latar depan, kita boleh menggunakan FG perintah.

$ fg 

Sekiranya kita banyak berhenti pekerjaan, kita perlu menggunakan tanda peratus dan menentukan id pekerjaan untuk membawa yang sesuai kembali ke latar depan.

$ fg %1 

Hebat, sekarang kita dapat meletakkan proses ke latar belakang dan membawanya kembali apabila kita menginginkannya kemudian. Tetapi bagaimana jika kita mahu arahan terus melaksanakan semasa berada di latar belakang? Untuk itu, kita boleh menggunakan BG perintah, diikuti oleh ampersand dan id pekerjaan. Perintah berikut akan membuat resume pekerjaan kami berhenti, sambil mengekalkannya di latar belakang.

$ bg %1 [1]+ tidur 10000 & 

Sekarang kita dapat melihat bahawa proses itu masih di latar belakang, tetapi ia menunjukkan status "berlari" dan bukannya "berhenti."

$ jobs -l [1]+ 1650 Running Sleep 10000 & 

Masih ada satu perkara yang harus diingat. Anda tidak dapat menutup terminal semasa anda, atau pekerjaan latar belakang ini akan ditutup. Sekiranya anda perlu menutup terminal anda, dan tidak mahu arahan ini berhenti, maka anda perlu "menyangkal" pekerjaan. Sekiranya anda hanya mempunyai satu pekerjaan di latar belakang, perintah berikut akan berfungsi:

$ disuntik 

Sekiranya anda mempunyai banyak, maka anda perlu menentukan ID pekerjaan.

$ disown %1 

Anda tidak akan lagi melihat pekerjaan di meja pekerjaan anda semasa anda melaksanakannya pekerjaan perintah. Sekarang selamat untuk menutup terminal dan arahan anda akan terus berjalan.

$ Jobs -l 

Anda masih boleh mengawasi arahan berjalan anda dengan menggunakan arahan PS.

$ ps aux | grep tidur linuxco+ 1650 0.0 0.0 8084 524 pts/0 s 12:27 0:00 tidur 10000 

Dan jika anda mahu menghentikan perintah dari berjalan, anda boleh menggunakan perintah membunuh dan tentukan id proses.

$ membunuh 1650 

Mulakan arahan di latar belakang

Sekarang kita telah melihat bagaimana untuk meletakkan proses berjalan ke latar belakang dan ingat kemudian. Tetapi kami juga mempunyai pilihan untuk memulakan arahan di latar belakang pada awalnya. Yang perlu anda lakukan ialah meletakkan ampersand pada akhir mana -mana arahan linux.

$ tidur 10000 & [1] 1900 


Sama seperti dahulu, kita dapat melihat pekerjaan yang disenaraikan dengan pekerjaan perintah. Walau bagaimanapun, kali ini, pekerjaan itu sudah berjalan dan kita tidak perlu memulakannya secara manual di latar belakang.

$ Jobs -l [1]+ 1900 Running Sleep 10000 & 

Tutup terminal dan teruskan kerja latar belakang

Kita sudah melihat dalam contoh sebelumnya bagaimana kita boleh menggunakan menyangkal perintah untuk memastikan arahan terus berjalan setelah kami menutup terminal kami. Pilihan lain ialah nohup perintah.

nohup memberitahu proses untuk mengabaikan apa -apa Sighup (hangup) memberi isyarat bahawa ia menerima. Isyarat mengeluh dihantar ke pekerjaan latar setiap kali terminal semasa ditutup. Oleh itu, kita boleh mempunyai pekerjaan di latar belakang, menutup terminal, dan masih melihatnya berjalan di latar belakang. Inilah contoh.

$ noHup Sleep 10000 & [1] 1908 Nohup: Mengabaikan input dan menambahkan output ke 'noHup.keluar' 

Kami telah menutup terminal dan membuka semula, kemudian menjalankan arahan berikut, yang menunjukkan perintah masih berjalan.

$ ps aux | Grep Sleep Linuxco+ 1908 0.0 0.0 8084 524 ? S 13:05 0:00 tidur 10000 

Menggunakan arahan skrin

Sehingga kini, kami telah menutup kaedah Linux lalai untuk menjalankan arahan di latar belakang. Walau bagaimanapun, terdapat juga pakej perisian tambahan yang boleh digunakan. Mungkin yang paling popular akan menjadi arahan skrin.

Anda dapat melihat pautan yang disebutkan di atas untuk arahan pemasangan dan penggunaan terperinci, tetapi intipati seperti ini:

  1. Jalankan skrin Perintah untuk memulakan "skrin" baru. Secara pilihan, sertakan -S pilihan untuk memberikannya nama.
    $ screen -s myCommand 
  2. Dalam sesi skrin baru, laksanakan arahan atau skrip yang ingin anda letakkan di latar belakang.
    $/jalan/ke/myscript.sh 
  3. Tekan Ctrl + a di papan kekunci anda, dan kemudian D. Ini akan melepaskan skrin, maka anda boleh menutup terminal, logout sesi SSH anda, dan lain -lain, dan skrin akan berterusan. Untuk melihat senarai skrin, gunakan arahan ini.
    $ skrin -ls Terdapat skrin di: 2741.MyCommand (04/08/2021 01:13:24 pm) (Diletakkan) 1 soket dalam/lari/skrin/s-linuxconfig. 


  4. Untuk memasukkan semula ke skrin, gunakan arahan berikut, menggantikan nombor di bawah dengan ID proses anda sendiri.
    $ skrin -r 2741 

Pemikiran penutupan

Dalam panduan ini, kami melihat beberapa kaedah yang berbeza untuk menjalankan arahan di latar belakang di Linux. Ini termasuk utiliti linux lalai dan arahan skrin. Kami juga melihat cara menguruskan proses latar belakang dengan menggerakkan pekerjaan ke latar depan, skrin semula, dan membunuh proses latar belakang.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Cara Mengendalikan Acara ACPI di Linux
  • Perintah Linux Asas
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Pasang Arch Linux di Workstation VMware
  • Muat turun linux
  • Perkara yang perlu dipasang di Ubuntu 22.04