Как я могу отменить команду / скрипт bash из моего приложения Electron с помощью Node's child_process? - PullRequest
2 голосов
/ 10 октября 2019

Я запускаю электронное приложение с Wraith. Я использую узел child_process, и он работает очень хорошо, за исключением отмены скрипта / команды bash.
Мне не удалось найти решение, которое работает для меня в Интернете.

Я хочу запустить команду, которая по существу будет работать аналогично ctrl + c, но из моего приложения Electron.

Я сократил свой код, чтобы его было легче читать:

My index.js file

var electron = require("electron");
var ipc = electron.ipcRenderer;
var shell = require('electron').shell;
var remote = require('electron').remote
var fs = require('fs');
var path = require('path');
var spawn = require('child_process').spawn;

function runScript(index) {

    var directory = __dirname + '/src/bash/';

    // Works as expected
    var vrt = spawn('/bin/sh',
        [directory + task, arg1, arg2]);

    vrt.stdout.on('data', function (data) {
        console.log(data.toString())
    });

    //This doesn't work
    setTimeout(function () {
        console.log("should close")
        vrt.kill();
    }, 1000)
}

console.log подтверждает, что скрипт продолжает работать, даже если был вызван vrt.kill().

Этот метод несколько раз появлялся при поиске ответов. У кого-нибудь есть представление о том, что я делаю не так?

Спасибо, все

Ваша помощь очень ценится

Мое

1 Ответ

0 голосов
/ 10 октября 2019

Попробуй это.

var electron = require("electron");
var ipc = electron.ipcRenderer;
var shell = require('electron').shell;
var remote = require('electron').remote
var fs = require('fs');
var path = require('path');
var spawn = require('child_process').spawn;

function runScript(index) {

    var directory = __dirname + '/src/bash/';

    // Works as expected
    var vrt = spawn('/bin/sh',
        [directory + task, arg1, arg2]);

vrt.stdout.on('data', function (data) {
        console.log(data.toString())
        vrt.stdin.pause();
        vrt.kill();
    });

}    

Спасибо: https://stackoverflow.com/a/18694940/12167785

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