Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menamatkan proses dalam nodejs

Bagaimana untuk menamatkan proses dalam nodejs

PHPz
PHPzasal
2023-04-05 14:34:571816semak imbas

Node.js ialah persekitaran masa jalan JavaScript berdasarkan enjin V8 dan kini merupakan salah satu teknologi yang paling biasa digunakan untuk pembangunan bahagian hadapan. Dalam Node.js, proses ialah konsep yang sangat penting, dan setiap aplikasi Node.js memulakan proses untuk dijalankan. Dalam sesetengah kes, kami perlu menamatkan proses berjalan secara manual Artikel ini akan memperkenalkan anda cara menamatkan proses Node.js.

Isyarat pengguguran program

Dalam Node.js, proses boleh menerima berbilang isyarat, yang boleh digunakan untuk mengawal gelagat proses, termasuk membatalkan proses. Beberapa isyarat biasa termasuk:

  • SIGINT: dicetuskan oleh input pengguna Ctrl + C, biasanya digunakan untuk menamatkan proses.
  • SIGTERM: Biasanya dihantar oleh sistem pengendalian untuk menunjukkan bahawa proses itu perlu ditamatkan seperti biasa.
  • SIGHUP: Biasanya menunjukkan bahawa sambungan terminal terganggu.
  • SIGBREAK: Dicetuskan oleh input pengguna Ctrl + Break di bawah sistem Windows.

Apabila proses menerima mana-mana isyarat ini, Node.js akan mencetuskan peristiwa process objek exit() Peristiwa ini membolehkan kami melakukan beberapa operasi pembersihan sebelum proses tamat.

Tamat melalui kod

Kita boleh terus memanggil kaedah process.exit() dalam kod untuk menamatkan proses. Kaedah process.exit() menyokong lulus dalam parameter integer, yang dipanggil kod keluar. Kod keluar ialah 0 apabila proses ditamatkan seperti biasa, jika tidak, ia adalah nilai bukan sifar. Seperti ini:

const code = 1;
process.exit(code);

Dalam kes ini, proses akan berakhir dengan kod keluar 1, yang boleh dilihat di terminal melalui echo $? (Mac/Linux) atau echo %errorlevel% (Windows) kod Keluar .

Selain itu, sebelum menamatkan proses, anda boleh mendengar acara exit() untuk melakukan beberapa operasi pembersihan:

process.on('exit', code => {
  // 执行一些清理操作
  console.log(`进程退出,退出码:${code}`);
});

Gunakan perintah kill

Sebagai tambahan kepada kod, kami juga Anda boleh menggunakan perintah kill sistem pengendalian untuk menamatkan proses. Arahan kill biasanya digunakan untuk menghantar isyarat kepada proses untuk mengawal tingkah laku proses, contohnya:

# 给进程 ID 为 1234 的进程,发送 SIGTERM 信号结束进程
kill -SIGTERM 1234

Jika tiada parameter diluluskan, arahan kill menghantar isyarat SIGTERM secara lalai, yang akan menyebabkan proses berakhir seperti biasa. Contohnya:

# 结束进程 ID 为 1234 的进程
kill 1234

Gunakan pm2 untuk mengurus proses

pm2 ialah alat pengurusan proses yang sangat berkuasa yang boleh digunakan secara meluas dalam persekitaran pengeluaran. pm2 Anda boleh memulakan, memulakan semula dan menghentikan aplikasi melalui baris arahan dan memantau status berjalan aplikasi. Sangat mudah untuk digunakan pm2 untuk mengurus proses Anda hanya perlu menjalankan arahan berikut dalam direktori aplikasi:

# 启动应用程序
pm2 start app.js

# 重启应用程序
pm2 restart app.js

# 停止应用程序
pm2 stop app.js

Selain itu, pm2 juga bertanggungjawab untuk memantau status berjalan dan. log keluaran aplikasi, yang sangat sesuai untuk digunakan dalam persekitaran pengeluaran.

Ringkasnya, terdapat banyak cara untuk menamatkan proses Node.js, yang paling biasa ialah memanggil kaedah process.exit() melalui kod atau menggunakan pm2 untuk mengurus proses tersebut. Sama ada cara, kita harus memastikan bahawa proses keluar seperti biasa untuk mengelakkan beban sistem yang tidak perlu disebabkan oleh proses yang berjalan di latar belakang.

Atas ialah kandungan terperinci Bagaimana untuk menamatkan proses dalam nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Adakah nodej akan dihapuskan?Artikel seterusnya:Adakah nodej akan dihapuskan?