nodejs. Как уничтожается подпроцесс вместе с мастер-процессом? - PullRequest
1 голос
/ 12 февраля 2020

import { spawn } from 'child_process'
let subproc = spawn( xxx/xxx.exe, [])

Этот код открывает новый процесс xxx.exe.

Как автоматически уничтожить дочерний процесс после выхода из основного процесса

1 Ответ

1 голос
/ 12 февраля 2020
import findProcess from 'find-process'
import { exec } from 'child-process'

const stop = async () => {
    const yourSubProcessName = 'xxx'
    if(process.platform === 'win32') {
        // Consider OS type
        // This is just for WinOS
        exec(`taskkill /IM ${yourSubProcessName}`)
    } else {
        // Other OS
        exec(`kill xxx`)
    }

    while(1) {
        const processList = await findProcess('name', yourSubProcessName)
        if(processList.length === 0) break
    }

}

app.on('will-quit', async () => {
    await stop()
});
...

Это завершает подпроцесс, когда закрывается основное приложение. Затем прослушайте событие will-quit и завершите подпроцесс на обработчике.

Этот код предназначен для закрытия подпроцесса с помощью ProcessName, но вы можете изменить его в соответствии со своими потребностями.

И вы должны рассмотреть свою работающую ОС тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...