Rumah >Tutorial sistem >LINUX >Meneroka dunia misteri operasi latar belakang di Linux

Meneroka dunia misteri operasi latar belakang di Linux

WBOY
WBOYke hadapan
2024-02-12 14:06:221440semak imbas

Mari kita meneroka dunia misteri dalam sistem pengendalian Linux - latar belakang berjalan. Dalam penggunaan harian, kita selalunya perlu menggunakan larian latar belakang untuk membiarkan tugasan dilaksanakan secara senyap di latar belakang tanpa menjejaskan kerja semasa kita. Jadi, bagaimana untuk melaksanakan operasi latar belakang dalam Linux?

Berfikir

Pertama sekali, kita perlu mempertimbangkan satu soalan Mengapa program latar belakang keluar apabila anda menutup terminal secara terus Ini kerana apabila anda menutup terminal secara terus, terminal akan menghantar isyarat SIGHUP kepada tugas latar belakang yang dimulakan dalam persekitaran semasa? , menyebabkan program yang sedang berjalan digantung Kemudian abaikan sahaja SIGHUP.

nohup

Arahan yang paling biasa digunakan ialah [nohup]. Daripada namanya, anda boleh mengetahui sama ada untuk menggantung arahan yang sedang berjalan, menutup terminal atau log keluar dari akaun Proses itu juga mesti digunakan dengan [. &] simbol.

Penggunaan: nohup Command [ Arg … ] [ & ] 探秘 Linux 中的神秘后台运行世界rreeee

Seperti yang dapat dilihat dari di atas, proses induk test.sh yang kami jalankan telah menjadi [PID 1]., dan diambil alih oleh proses utama Linux.

setsid

nohup ialah mengabaikan isyarat SIGHUP, adakah idea lain?

Arahan setip boleh membuka semula sesi, mewarisi ID kumpulan proses induk dan melepaskan diri daripada kawalan proses induk. Seperti yang anda boleh lihat dari gambar di bawah, proses induk skrip test.sh sudah pun init 1. Pada masa ini, tidak kira sama ada anda menutup atau keluar dari terminal, ia tidak ada kena mengena dengan program latar belakang.

$ nohup sh test.sh &  
# 直接关闭当前终端,再打开一个查看  
$ ps -few|grep test.sh 
探秘 Linux 中的神秘后台运行世界

Satu lagi perbezaan setsid dan nohup ialah tak perlu guna simbol & background.

keluar

Gunakan arahan keluar untuk keluar dari terminal, tetapi program kami akan terus berjalan Mengapa ini?

Ini kerana apabila keluar dari terminal menggunakan arahan keluar, isyarat SIGHUP tidak akan dihantar ke tugas yang menjadi milik terminal Ia dikawal oleh item konfigurasi huponexit Anda boleh menggunakan arahan shopt melihatnya.

探秘 Linux 中的神秘后台运行世界rreeee

Konfigurasikan huponexit kepada hidup, gunakan arahan keluar sekali lagi untuk keluar, dan tugasan yang sepadan akan keluar dengan sewajarnya.

$ setsid sh test.sh 

perangkap

Perintah perangkap ialah arahan terbina dalam Linux Tindakan yang perlu diambil apabila menerima isyarat yang ditentukan, diikuti dengan nama isyarat yang akan diproses adalah seperti berikut:

探秘 Linux 中的神秘后台运行世界

Apabila skrip perlu di latar belakang dan kami tidak mahu terminal keluar dan menutup program, kami boleh menambah arahan perangkap pada skrip untuk mengabaikan isyarat SIGHUP (gantung proses).

[root@api ~]# shopt |grep huponexit  
huponexit off 

Arahan skrin Linux digunakan untuk program pengurusan berbilang tetingkap Ia boleh mencipta terminal dan membiarkan program berjalan di dalamnya

rreeee 探秘 Linux 中的神秘后台运行世界Seperti yang dapat dilihat daripada contoh, proses induk bagi skrip ujian ialah proses terminal skrin, dan proses induk PID1 terminal skrin juga melengkapkan perjalanan proses latar belakang.

Ringkasnya, berlari di latar belakang adalah teknik yang sangat biasa dan praktikal dalam Linux. Sama ada ia melaksanakan beberapa perkhidmatan latar belakang di bahagian pelayan atau menyelesaikan beberapa tugasan yang sudah lama dijalankan pada komputer peribadi, operasi latar belakang boleh membantu kami meningkatkan kecekapan dan memudahkan kerja harian kami.

Atas ialah kandungan terperinci Meneroka dunia misteri operasi latar belakang di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lxlinux.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam