Rumah > Artikel > hujung hadapan web > Bagaimana untuk melaksanakan program Daemon menggunakan Node.js
Daemon ialah program yang berjalan di latar belakang, biasanya digunakan untuk perkhidmatan jangka panjang yang tidak memerlukan operasi pengguna langsung. Dalam Node.js, anda boleh melaksanakan program Daemon melalui beberapa kaedah mudah. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Node.js untuk melaksanakan program Daemon.
Pelaksanaan
Dalam Node.js, anda boleh menggunakan kaedah spawn child_process untuk mencipta proses. Dengan meletakkan proses ini berjalan di latar belakang, program Daemon boleh dilaksanakan. Berikut ialah langkah pelaksanaan:
const spawn = require('child_process').spawn; const child = spawn(process.argv[0], process.argv.slice(2), { detached: true, stdio: 'ignore' }); child.unref();
Dalam kod di atas, kaedah spawn digunakan untuk mencipta proses anak, di mana parameter pertama ialah laluan fail boleh laku Node.js , dan yang kedua Parameter ialah laluan ke program utama, dan parameter ketiga mengandungi pilihan untuk mencipta subproses. Antaranya, detached ditetapkan kepada benar untuk memisahkan proses kanak-kanak daripada proses utama, iaitu, proses kanak-kanak berjalan sebagai proses berasingan ditetapkan kepada 'abaikan' untuk menunjukkan bahawa input dan output standard proses kanak-kanak itu; tidak terikat dengan proses utama. Kaedah
unref() boleh memisahkan subproses yang dibuat daripada proses utama, iaitu, apabila proses utama keluar, subproses masih akan terus berjalan.
nohup node main.js > /dev/null 2>&1 &
Dalam arahan di atas, arahan nohup digunakan untuk menjalankan program utama di latar belakang, dan '> /dev/null 2>&1 &' bermaksud mengubah hala keluaran program ke /dev/null supaya ia tidak dipaparkan pada konsol.
[Unit] Description=My Daemon [Service] ExecStart=/usr/bin/node /path/to/main.js Restart=always User=<your_username> Group=<your_group> StandardOutput=syslog StandardError=syslog SyslogIdentifier=mydaemon [Install] WantedBy=multi-user.target
Dalam fail di atas, medan Penerangan digunakan untuk menerangkan perkhidmatan; medan ExecStart menentukan arahan permulaan perkhidmatan, iaitu Laksanakan skrip Node.js, medan Mulakan semula menentukan strategi mulakan semula perkhidmatan; perkhidmatan kepada log sistem; medan SyslogIdentifier menentukan Pengecam perkhidmatan dalam log sistem.
sudo systemctl daemon-reload sudo systemctl enable mydaemon sudo systemctl start mydaemon
Arahan pertama digunakan untuk memuat semula Systemd Configuration, arahan kedua digunakan untuk menetapkan perkhidmatan supaya bermula secara automatik semasa but, dan arahan ketiga digunakan untuk memulakan perkhidmatan.
Ringkasan
Artikel ini memperkenalkan kaedah menggunakan Node.js untuk melaksanakan program Daemon, termasuk mencipta proses anak melalui kaedah spawn, menjalankan program di latar belakang dan menjalankannya sebagai perkhidmatan sistem. Melalui kaedah ini, anda boleh melaksanakan program jangka panjang yang boleh terus berjalan apabila program utama keluar.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan program Daemon menggunakan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!