Rumah Operasi dan penyelenggaraan operasi dan penyelenggaraan linux Analisis kod contoh proses daemon Linux

Analisis kod contoh proses daemon Linux

Jun 02, 2023 pm 08:31 PM
linux

Peranan proses pemastautin dalam Linux tidak boleh diabaikan, tetapi masalah di dalamnya juga tidak boleh diabaikan Cara memulakan proses, cara menamatkan proses dan cara memulakan semula proses selepas ia mati mesti direka dengan sewajarnya. Mari lihat contoh proses pemastautin PHP yang dikawal oleh shell.

Salin kod Kod adalah seperti berikut:

#!/bin/sh
#filename test.sh
#Lokasi fail berada pada kedudukan mutlak dan tidak berubah dengan direktori pelaksanaan
cd $(cd "$(dirname "$0")";pwd)
readonly path=$(pwd)/
file=$1;
runfile="${path }data/${file} .run"
diefile="${path}data/${file}.die"
readonly file="${path}${file}.php"
jika [ ! -f "$ fail" ]; maka
echo "sila pilih fail yang wujud"
elif [ ! wujud, ia bermakna proses itu tidak wujud , mulakan proses di bawah
echo $$>${runfile}
manakala benar
do
jika [ -f $diefile ] kemudian
#Di sini jika fail diefile tidak wujud, maka Menunjukkan bahawa atur cara terus dilaksanakan, jika tidak, ia memasuki lain dan menjalankan operasi keluar​​​​ #Jika fail diefile wujud Kosongkan runfile dan diefile dan keluar
jika rm -rf $runfile && rm -rf $diefile; kemudian
keluar
fi
selesai
lain
#Ini wujud Dalam kes runfile, cuba mulakan proses
oldpid=`cat $runfile`
newpid=`ps aux |. grep "process.sh $1" | oldpid -eq $newpid ]]; maka
#Jika nombor proses dalam runfile konsisten dengan nombor proses sasaran yang sedang berjalan, semuanya baik-baik saja^_^
echo "proses sedang berjalan sekarang"
keluar
lain
#Jika nombor proses dalam runfile tidak sepadan dengan proses sasaran yang sedang berjalan, ini bermakna terdapat masalah dengan proses tersebut secara langsung dan tamatkan proses berjalan
echo "error situation,kill proses jalankan dan padamkan fail run"
ps aux | grep "process.sh $1" | grep -v 'grep' | awk '{print $2}' | grep -v $ $ | /data/error
fi
fi
fi


Hanya terdapat beberapa perkara yang perlu ditekankan:

Saya menggunakan shell ini untuk memanggil program php, Tiada had untuk ini . Apa yang saya ingin jelaskan di sini ialah kaedah menjalankan proses pemastautin ini
Apabila runfile wujud, tetapi nombor proses tidak sepadan dengan proses pembunuhan (iaitu, di mana merah lain dilaksanakan), anda mesti `grep -v $$`, fungsinya adalah untuk menapis proses yang sedang berjalan, jika tidak, ia akan dimatikan, dan yang berikutnya tidak akan dilaksanakan
Satu lagi perkara yang perlu diberi perhatian ialah tentang mula semula automatik
Mula semula automatik Ia boleh diletakkan dalam crontab dan dilaksanakan sekali-sekala Situasi khusus akan dirawat mengikut kes.

Salin kod Kod adalah seperti berikut:

crontab -e
#Buka jadual pengguna semasa dan tambah mod

#Terdapat 5 asterisk dalam jadual, f1, f2 , f3 , f4, f5,

# dengan f1 mewakili minit, f2 mewakili jam, f3 mewakili hari, f4 mewakili bulan, f5 mewakili hari dalam seminggu

#* mewakili setiap minit/jam/hari/bulan/ minggu , */n bermaksud melaksanakan sekali setiap n minit/jam/...

*/2 * * * * /root/test.sh
#Laksanakan sekali setiap 2 minit

Dengan cara ini, fungsi proses pemastautin yang lengkap selesai Jika anda ingin menamatkan proses, anda hanya perlu menyentuh ${diefile} dalam direktori yang sepadan.

Atas ialah kandungan terperinci Analisis kod contoh proses daemon Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa yang sebenarnya Linux? Apa yang sebenarnya Linux? Apr 12, 2025 am 12:20 AM

Linux sesuai untuk pelayan, persekitaran pembangunan, dan sistem tertanam. 1. Sebagai sistem pengendalian pelayan, Linux stabil dan cekap, dan sering digunakan untuk menggunakan aplikasi konkurasi tinggi. 2. Sebagai persekitaran pembangunan, Linux menyediakan alat arahan dan sistem pengurusan pakej yang cekap untuk meningkatkan kecekapan pembangunan. 3. Dalam sistem tertanam, Linux ringan dan disesuaikan, sesuai untuk persekitaran dengan sumber yang terhad.

Cara melihat contoh nama oracle Cara melihat contoh nama oracle Apr 11, 2025 pm 08:18 PM

Terdapat tiga cara untuk melihat nama contoh di Oracle: Gunakan "sqlplus" dan "pilih instance_name dari v $ instance;" Perintah pada baris arahan. Gunakan "pertunjukan instance_name;" Perintah dalam SQL*Plus. Semak Pembolehubah Alam Sekitar (ORACLE_SID pada Linux) melalui Pengurus Tugas Sistem Operasi, Pengurus Oracle Enterprise, atau melalui sistem operasi.

Menggunakan Docker dengan Linux: Panduan Komprehensif Menggunakan Docker dengan Linux: Panduan Komprehensif Apr 12, 2025 am 12:07 AM

Menggunakan Docker di Linux dapat meningkatkan kecekapan pembangunan dan penempatan. 1. Pasang Docker: Gunakan skrip untuk memasang Docker di Ubuntu. 2. Sahkan pemasangan: Jalankan Sudodockerrunhello-World. 3. Penggunaan Asas: Buat kontena Nginx Dockerrun-Namemy-Nginx-P8080: 80-Dnginx. 4. Penggunaan Lanjutan: Buat imej tersuai, bina dan lari menggunakan Dockerfile. 5. Pengoptimuman dan amalan terbaik: Ikuti amalan terbaik untuk menulis dockerfiles menggunakan pelbagai peringkat membina dan dockercompose.

Cara Memulakan Apache Cara Memulakan Apache Apr 13, 2025 pm 01:06 PM

Langkah-langkah untuk memulakan Apache adalah seperti berikut: Pasang Apache (perintah: sudo apt-get pemasangan apache2 atau muat turun dari laman web rasmi) Mula Apache (linux: Sudo Systemctl Mula Apache2; Windows: Klik kanan "Apache2.4" Perkhidmatan dan pilih "Mula") Boot secara automatik (Pilihan, Linux: Sudo Systemctl

Apa yang Harus Dilakukan Sekiranya Pelabuhan Apache80 Diduduki Apa yang Harus Dilakukan Sekiranya Pelabuhan Apache80 Diduduki Apr 13, 2025 pm 01:24 PM

Apabila port Apache 80 diduduki, penyelesaiannya adalah seperti berikut: Cari proses yang menduduki pelabuhan dan tutupnya. Semak tetapan firewall untuk memastikan Apache tidak disekat. Jika kaedah di atas tidak berfungsi, sila buat semula Apache untuk menggunakan port yang berbeza. Mulakan semula perkhidmatan Apache.

Cara Memantau Prestasi SSL Nginx di Debian Cara Memantau Prestasi SSL Nginx di Debian Apr 12, 2025 pm 10:18 PM

Artikel ini menerangkan bagaimana untuk memantau prestasi SSL pelayan Nginx secara berkesan pada sistem Debian. Kami akan menggunakan NginXExporter untuk mengeksport data status nginx ke Prometheus dan kemudian memaparkannya secara visual melalui Grafana. Langkah 1: Mengkonfigurasi Nginx Pertama, kita perlu mengaktifkan modul Stub_status dalam fail konfigurasi Nginx untuk mendapatkan maklumat status nginx. Tambahkan coretan berikut dalam fail konfigurasi nginx anda (biasanya terletak di /etc/nginx/nginx.conf atau termasuk fail): lokasi/nginx_status {stub_status

Cara memulakan pemantauan oracle Cara memulakan pemantauan oracle Apr 12, 2025 am 06:00 AM

Langkah -langkah untuk memulakan pendengar oracle adalah seperti berikut: Periksa status pendengar (menggunakan arahan status lsnrctl) untuk Windows, mulakan perkhidmatan "TNS pendengar" dalam Pengurus Perkhidmatan Oracle untuk Linux dan Unix, gunakan arahan mula lsnrctl untuk memulakan pendengar untuk menjalankan arahan status lsnrctl untuk mengesahkan bahawa pendengar itu dimulakan

Cara Menyiapkan Bin Kitar Semula dalam Sistem Debian Cara Menyiapkan Bin Kitar Semula dalam Sistem Debian Apr 12, 2025 pm 10:51 PM

Artikel ini memperkenalkan dua kaedah mengkonfigurasi tong kitar semula dalam sistem Debian: antara muka grafik dan baris arahan. Kaedah 1: Gunakan antara muka grafik Nautilus untuk membuka Pengurus Fail: Cari dan mulakan Pengurus Fail Nautilus (biasanya dipanggil "Fail") dalam menu desktop atau aplikasi. Cari tong kitar semula: Cari folder bin kitar semula di bar navigasi kiri. Jika tidak dijumpai, cuba klik "Lokasi Lain" atau "Komputer" untuk mencari. Konfigurasikan Properties Bin Recycle: Klik kanan "Bin Kitar Semula" dan pilih "Properties". Dalam tetingkap Properties, anda boleh menyesuaikan tetapan berikut: Saiz maksimum: Hadkan ruang cakera yang terdapat dalam tong kitar semula. Masa pengekalan: Tetapkan pemeliharaan sebelum fail dipadamkan secara automatik di tong kitar semula

See all articles