Hantar Proses ke Latar Belakang Linux

Send Process Background Linux



Semasa bekerja dengan persekitaran desktop grafik, kita jarang bimbang tentang proses latar belakang. Sekiranya kita mempunyai proses yang berjalan di latar depan, kita dapat dengan cepat memunculkan tetingkap terminal yang lain dan meneruskan pekerjaan kita.

Walau bagaimanapun, jika anda menggunakan shell terminal mentah seperti SSH, anda sering merasa prihatin dengan proses yang menempati dan menyekat shell sehingga selesai, terutama pada pekerjaan yang sudah lama berjalan. Di situlah konsep proses latar dan latar depan dimainkan.







Tutorial ini akan membincangkan apa proses latar belakang dan latar depan, termasuk membuat dan menguruskannya di Linux.



Apa itu Proses?

Benarkan saya memulakan di peringkat asas: apakah prosesnya?



Di Linux, proses adalah contoh program. Biasanya, ini bermaksud arahan atau pelaksanaan dalam shell adalah proses.





Terdapat dua jenis proses:

  • Proses latar depan
  • Proses latar belakang

Proses Foreground adalah aplikasi khas yang kami lancarkan dan berinteraksi dengannya. Contohnya ialah pengurus fail nautilus di Gnome. Dalam kebanyakan kes, kita dapat memulakan proses latar depan dari shell atau persekitaran desktop.



Sebaliknya, proses latar berjalan di latar belakang dan tidak memerlukan input atau interaksi dari pengguna. Contohnya ialah daemon Linux biasa.

Cara Menjalankan Proses di Latar Belakang

Andaikan kita mempunyai proses yang, ketika berjalan, menempati sesi shell dan menghalangi kita untuk melaksanakan perintah hingga keluar.

Sebagai contoh, jika kita menjalankan penyemak imbas Firefox di cengkerang, ia akan memenuhi sesi sehingga proses ditamatkan.

$firefox


Seperti yang anda lihat, selagi Firefox berjalan, prompt shell tidak tersedia, dan kami tidak dapat menjalankan perintah lagi.

Untuk menyelesaikannya, kita boleh melakukannya dengan dua cara:

1: Menggunakan Ampersand (&)

Kaedah pertama adalah menggunakan ampersand & sign. Ini memberitahu shell untuk menjalankan perintah apa pun yang mendahului ampersand di latar belakang.

Satu contoh:

firefox&

Dalam senario seperti itu, proses ini dijalankan di latar belakang dan muncul sebagai permintaan shell baru yang memungkinkan kita untuk terus menjalankan perintah.

Ia juga memberikan dua pengecam berangka. Yang pertama dilampirkan dalam tanda kurung persegi adalah ID Pekerjaan, sementara yang berikutnya adalah ID proses.

2: Menggunakan perintah CTRL + Z, bg.

Kaedah seterusnya yang boleh anda gunakan untuk meletakkan proses di latar belakang adalah dengan menggunakan jalan pintas CTRL + Z. Ini menghentikan proses menyekat shell. Anda kemudian boleh menggunakan perintah bg untuk mendorongnya ke latar belakang.

Sebagai contoh, mulakan dengan melancarkan Firefox sebagai:

$Firefox

Semasa proses berjalan, tekan CTRL + Z. Ini mengembalikan permintaan shell anda. Akhirnya, masukkan perintah bg untuk mendorong proses di latar belakang.

Cara Menunjukkan Proses Latar Belakang

Untuk melihat dan menguruskan proses di latar belakang, gunakan perintah pekerjaan di shell. Itu akan menunjukkan latar belakang pekerjaan pada sesi terminal semasa.

Sebagai contoh:

$pekerjaan

Contoh output pekerjaan latar belakang:

Untuk membawa proses yang berjalan di latar belakang ke latar depan, gunakan perintah fg diikuti dengan id pekerjaan.

Sebagai contoh, untuk membawa pekerjaan firefox di latar depan, kami menggunakan arahan:

$fg %1

Untuk meletakkan di latar belakang lagi, tekan CTRL + Z diikuti dengan perintah bg.

Cara Membuat Proses Yang Berterusan Selepas Shell Mati

Apabila anda menjalankan proses di latar belakang, dan sesi shell anda mati, semua proses yang berkaitan dengannya berakhir, yang boleh menjadi masalah, terutama jika itu adalah sesi SSH.

Namun, masalah ini tidak terlalu besar jika anda menggunakan multiplexer terminal seperti tmux atau layar kerana, dalam hal ini, anda hanya boleh memasang kembali sesi.

Namun, jika anda menjalankan sesi shell tanpa multiplexer, anda boleh menggunakan perintah nohup.

Perintah nohup kebal terhadap hang-up dan boleh mengabaikan isyarat SIGHUP yang dihantar ke suatu proses.

Oleh itu, jika anda menjalankan perintah dengan nohup, ia akan terus berjalan walaupun sesi shell mati secara tidak sengaja.

Contohnya, untuk menjalankan Firefox dengan nohup, gunakan arahan:

nohupFirefox&

Ini akan menjalankan proses di latar belakang sebagai penahan shell.

Anda boleh menjalankan sesi terminal baru dan melihat pekerjaan latar belakang. Anda akan melihat prosesnya masih berjalan di latar belakang.

Kesimpulannya

Dalam tutorial ini, kami membincangkan pelbagai cara untuk menjalankan dan menghantar proses ke latar belakang di Linux. Kami juga membahas bagaimana membawa proses latar belakang ke latar belakang dan bertahan lama setelah penamatan shell.