Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk membunuh proses kanak-kanak berdasarkan namanya dalam nodejs

Bagaimana untuk membunuh proses kanak-kanak berdasarkan namanya dalam nodejs

WBOY
WBOYasal
2023-05-27 20:44:39906semak imbas

Node.js ialah persekitaran berjalan JavaScript berdasarkan I/O tak segerak dipacu peristiwa, yang boleh membina aplikasi rangkaian berprestasi tinggi dan berskala dengan mudah. Node.js juga menyediakan API pengurusan subproses, menjadikannya mudah untuk melaksanakan program baris arahan atau skrip Node.js yang lain.

Apabila kami menggunakan API subproses Node.js untuk melaksanakan arahan, kadangkala kami mungkin perlu mematikan proses semasa ia berjalan. Biasanya, kita boleh menggunakan objek subproses untuk menghantar isyarat dari luar untuk menghentikan proses, tetapi bagaimana jika kita mahu mematikan proses secara langsung berdasarkan namanya?

Di bawah, saya akan memperkenalkan cara untuk membunuh proses kanak-kanak berdasarkan namanya dalam Node.js.

  1. Latar Belakang Masalah

Dalam Node.js, API subproses boleh digunakan untuk memulakan dan mematikan proses dengan mudah. Katakan kita mempunyai kod berikut:

const { spawn } = require('child_process');

const child = spawn('node', ['child_process.js']);

setTimeout(() => {
  // 杀死子进程
  child.kill();
}, 5000);

Kod di atas memulakan proses anak Node.js bernama child_process.js melalui API proses anak dan menghentikan proses itu selepas 5 saat melalui kaedah child.kill(). Memandangkan kami telah memperoleh objek subproses, kami boleh terus memanggil kaedah kill() untuk mematikan proses tersebut.

Tetapi bagaimana jika kita mahu mematikan proses yang sudah berjalan dan bukannya mendapatkan objeknya semasa memulakan proses?

Katakan kita sudah mempunyai proses anak Node.js bernama child_process.js berjalan, dan kita mahu mematikan proses tersebut berdasarkan namanya (iaitu child_process.js Bagaimana cara melakukannya?

  1. Penyelesaian

Untuk menyelesaikan masalah ini, kita perlu melakukan langkah berikut:

  1. Dapatkan semua proses yang sedang berjalan
  2. Tapis proses yang perlu kita bunuh berdasarkan nama proses
  3. Bunuh proses

Berikut ialah kaedah khusus untuk melaksanakan langkah-langkah ini:

rreee

Kod di atas , kami menggunakan kaedah exec() untuk mendapatkan semua proses yang sedang berjalan. Kemudian, kami menapis proses yang perlu dimatikan berdasarkan nama proses node dan child_process.js dan menyimpan PID mereka dalam tatasusunan. Akhir sekali, kami mematikan proses ini menggunakan kaedah process.kill().

Terdapat beberapa perkara yang perlu diberi perhatian: Kaedah

  • exec() mengembalikan objek proses kanak-kanak dan kita perlu mendapatkan kandungan output arahan daripada stdoutnya.
  • Anda boleh melihat semua proses yang sedang berjalan dengan melaksanakan ps axo command pada baris arahan.

Menggunakan kaedah di atas, kita boleh membunuh proses anak berdasarkan namanya.

  1. Ringkasan

Artikel ini menerangkan cara untuk membunuh proses kanak-kanak berdasarkan namanya dalam Node.js. Khususnya, kita perlu terlebih dahulu mendapatkan semua proses yang sedang berjalan, kemudian menapis proses yang perlu dimatikan berdasarkan nama proses, dan akhirnya menggunakan kaedah process.kill() untuk mematikan proses ini.

Perlu diperhatikan bahawa kaedah di atas tidak digunakan untuk sistem Windows, kerana sistem ini tidak mempunyai arahan ps yang serupa dengan Linux. Jika anda perlu melaksanakan fungsi ini di bawah Windows, anda boleh mempertimbangkan untuk menggunakan beberapa perpustakaan pihak ketiga atau terus memanggil API sistem pengendalian untuk melaksanakannya.

Atas ialah kandungan terperinci Bagaimana untuk membunuh proses kanak-kanak berdasarkan namanya 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