Cara Memulakan Perintah Linux di Latar Belakang dan Tanggalkan Proses di Terminal

Cara Memulakan Perintah Linux Di Latar Belakang Dan Tanggalkan Proses Di Terminal



Dalam panduan ini, kita akan belajar cara menjalankan arahan di latar belakang dan cara menanggalkan proses daripada terminal.

Prasyarat:

Untuk melaksanakan langkah-langkah dalam panduan ini, anda memerlukan komponen berikut:

  • Sistem Linux yang berfungsi. Ketahui lebih lanjut tentang menyediakan VM Ubuntu pada VirtualBox .
  • Akses kepada a pengguna bukan root dengan kebenaran sudo .

Menjalankan Proses dari Terminal

Setiap kali menjalankan arahan, proses itu dihasilkan di bawah terminal. Jika terminal ditutup, semua proses yang berkaitan akan ditamatkan secara automatik. Dalam situasi tertentu, ia boleh menyusahkan. Sebagai contoh:







  • Jumlah luar biasa data output dan mesej ralat/diagnostik
  • Penutupan terminal secara tidak sengaja yang mengakibatkan penamatan proses yang berpotensi kritikal misi, dsb.

Untuk menangani isu ini, terdapat beberapa pilihan:



  • Menjalankan proses di latar belakang
  • Mengeluarkan proses dari terminal

Proses yang berjalan di latar belakang tidak akan mengatasi output terminal. Selain itu, terminal bebas untuk menjalankan arahan tambahan. Untuk proses terpisah, mereka tidak akan ditamatkan walaupun terminal ditutup.



Memulakan Proses di Latar Belakang

Dalam banyak kes, arahan boleh mengambil masa yang agak lama untuk diselesaikan. Secara amnya, pengguna terpaksa menunggu sehingga arahan selesai. Contohnya, apabila anda menggunakan editor teks, cangkerang tidak tersedia sehingga editor ditutup.





Untuk menunjukkan, kami menggunakan arahan 'ya':

$ lelaki ya



Kaedah 1:

Terdapat beberapa cara di mana kita boleh menghantar proses berjalan ke latar belakang.

Pertama, kami menghentikan proses tanpa menamatkannya. Untuk berbuat demikian, jalankan arahan berikut dan tekan 'Ctrl + Z':

$ ya 'Hai dunia' > / dev / null

Sekarang, jalankan arahan 'bg' untuk menghantar proses di latar belakang:

$ bg

Setelah ditolak ke latar belakang, proses disambung semula. Perintah berikut menyenaraikan semua kerja yang sedang berjalan di latar belakang:

$ pekerjaan

Kaedah 2:

Dalam kaedah sebelumnya, proses mula-mula mula berjalan di latar depan. Kami menjeda proses itu, menghantarnya ke latar belakang, kemudian meneruskannya. Sebaliknya, kita boleh menjalankan proses secara langsung di latar belakang.

Untuk berbuat demikian, tambahkan tanda '&' di hujung arahan:

$ ya 'oh long johnson' > / dev / null &

Di sini, proses yang dihasilkan secara automatik berjalan di latar belakang. Untuk mengesahkan, semak senarai kerja latar belakang:

$ pekerjaan

Kaedah 3:

Kami juga boleh melancarkan proses di latar belakang dengan bantuan tmux , pemultipleks berkuasa yang boleh mengurus berbilang sesi terminal dalam satu tetingkap. Ia tidak diprapasang dalam Linux. Walau bagaimanapun, ia tersedia untuk semua distro Linux utama. Ketahui lebih lanjut tentang pemasangan tmux pada Linux .

Dalam contoh berikut, kami menggunakan tmux untuk ping sasaran dan log keluaran:

$ tmux baru -d 'ping -c 9 127.0.0.1 > ping.log'

Fail log mengesahkan sama ada arahan berjalan dengan jayanya atau tidak:

$ kucing ping.log

Ia hanyalah satu contoh perkara yang boleh dilakukan oleh tmux. Ketahui lebih lanjut tentang tmux dengan contoh .

Mengembalikan Pekerjaan ke Latar Depan

Jika anda ingin mengembalikan kerja ke latar depan, kami menggunakan arahan 'fg'. Kami juga memerlukan nombor kerja daripada arahan kerja.

Mula-mula, tentukan kerja yang anda ingin bawa ke latar depan:

$ pekerjaan

Sekarang, gunakan arahan 'fg':

$ fg %< nombor_pekerjaan >

Mengeluarkan Proses daripada Terminal

Sebarang proses yang dikaitkan dengan terminal ditamatkan sebaik sahaja terminal ditutup, sama ada ia berjalan di latar depan atau di latar belakang. Untuk mengelakkan penamatan proses, kami mengasingkan proses sasaran daripada terminal/shell.

Kaedah 1:

Untuk menolak proses, kita memerlukan proses latar belakang terlebih dahulu:

$ ya 'qwerty' > / dev / null &

Semak senarai kerja latar belakang yang sedang dijalankan:

$ pekerjaan

Perhatikan nombor siri kerja latar belakang sasaran. Sekarang, gunakan perintah 'disown' untuk melepaskannya dari terminal:

$ menafikan %< nombor_pekerjaan >

Kerja sasaran kini seharusnya hilang daripada senarai kerja:

$ pekerjaan

Walau bagaimanapun, anda masih boleh melihat proses berjalan di latar belakang:

$ ps kepada

Kaedah 2:

Satu lagi cara untuk memisahkan proses daripada terminal induk adalah menggunakan arahan 'nohup'. Ia memastikan proses berjalan di latar belakang walaupun selepas menutup terminal.

Penggunaan 'nohup' adalah seperti berikut:

$ nohup < perintah > &

Sahkan jika kerja berjaya dibuat:

$ pekerjaan

Kaedah 3:

Kaedah ini memisahkan sepenuhnya proses sasaran. Ini adalah cara yang lebih berkesan untuk mencabut apl GUI.

Sebagai contoh, untuk memulakan Firefox dan menanggalkannya sepenuhnya daripada terminal, gunakan arahan berikut:

$ firefox dev / null &>/ dev / null &

di sini:

  • The /dev/null ialah peranti khas dalam Linux yang menyingkirkan sebarang data yang ditulis kepadanya.
  • Dalam arahan sebelumnya, input dibaca dari dan output dihantar ke /dev/null . Ketahui lebih lanjut tentang cara lain menggunakan /dev/null .

Kesimpulan

Kami menunjukkan pelbagai cara menjalankan proses di latar belakang. Kami juga mempamerkan cara untuk melepaskan proses daripada terminal induk. Teknik ini boleh berguna apabila bekerja dengan terminal atau menjalankan skrip .

Jika anda perlu menjalankan arahan tertentu dalam corak tertentu, kami boleh memunggahnya sebagai a perkhidmatan systemd . Untuk mesin jauh, kami juga boleh menggunakan alat pihak ketiga seperti Boleh mengautomasikan hampir segala-galanya .

Selamat berkomputer!