subprocess.kill([signal])
添加於:v0.1.90
參數
subprocess.kill() 方法向子進程發送信號。如果沒有給出參數,進程將被發送'SIGTERM' 信號。有關可用信號的列表,請參閱 。如果signal(7)   成功,此函數返回kill(2) true,否則返回false。
const { spawn } = require('node:child_process');
const grep = spawn('grep', ['ssh']);
grep.on('close', (code, signal) => {
  console.log(
    `child process terminated due to receipt of signal ${signal}`);
});
// Send SIGHUP to process.
grep.kill('SIGHUP');
如果無法傳遞信號,  對象可能會發出 ChildProcess   事件。向已經退出的子進程發送信號不是錯誤,但可能會產生無法預料的後果。具體來說,如果進程標識符 (PID) 已重新分配給另一個進程,則信號將被傳遞給該進程,而這可能會產生意想不到的結果。'error' 
雖然該函數被稱為 kill ,但傳遞給子進程的信號實際上可能不會終止該進程。
請參閱  以供參考。kill(2) 
在不存在 POSIX 信號的 Windows 上,signal 參數將被忽略,進程將被強製而突然地終止(類似於 'SIGKILL' )。有關詳細信息,請參閱Signal Events。
在 Linux 上,子進程的子進程在試圖殺死其父進程時不會被終止。在 shell 中運行新進程或使用 ChildProcess 的 shell 選項時,可能會發生這種情況:
'use strict';
const { spawn } = require('node:child_process');
const subprocess = spawn(
  'sh',
  [
    '-c',
    `node -e "setInterval(() => {
      console.log(process.pid, 'is alive')
    }, 500);"`,
  ], {
    stdio: ['inherit', 'inherit', 'inherit']
  }
);
setTimeout(() => {
  subprocess.kill(); // Does not terminate the Node.js process in the shell.
}, 2000);
相關用法
- Node.js ChildProcess subprocess.stdio用法及代碼示例
 - Node.js ChildProcess subprocess.send(message[, sendHandle[, options]][, callback])用法及代碼示例
 - Node.js ChildProcess subprocess.stdout用法及代碼示例
 - Node.js ChildProcess subprocess.unref()用法及代碼示例
 - Node.js ChildProcess subprocess.pid用法及代碼示例
 - Node.js ChildProcess subprocess.ref()用法及代碼示例
 - Node.js substr()用法及代碼示例
 - Node.js socket.bind()用法及代碼示例
 - Node.js stream.Writable.uncork()用法及代碼示例
 - Node.js split()用法及代碼示例
 - Node.js stream.Readable.take(limit[, options])用法及代碼示例
 - Node.js serverhttp2session.origin()用法及代碼示例
 - Node.js stream.Readable.pipe(destination[, options])用法及代碼示例
 - Node.js socket.setRecvBufferSize()用法及代碼示例
 - Node.js socket.getSendBufferSize()用法及代碼示例
 - Node.js stats.ctimeMs屬性用法及代碼示例
 - Node.js stream.Readable.setEncoding(encoding)用法及代碼示例
 - Node.js stats.isSymbolicLink()用法及代碼示例
 - Node.js stats.atimeMs屬性用法及代碼示例
 - Node.js sort()用法及代碼示例
 - Node.js stream.Readable.some(fn[, options])用法及代碼示例
 - Node.js stream.Readable.map(fn[, options])用法及代碼示例
 - Node.js socket.setBroadcast()用法及代碼示例
 - Node.js socket.ref()用法及代碼示例
 - Node.js stats.isFIFO()用法及代碼示例
 
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 subprocess.kill([signal])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
