【问题标题】:How can I cancel a bash command/script from my Electron app with Node's child_process?如何使用 Node 的 child_process 从我的 Electron 应用程序中取消 bash 命令/脚本?
【发布时间】:2023-03-30 17:10:01
【问题描述】:

我正在使用 Wraith 运行一个电子应用程序。我正在使用节点的 child_process,除了取消 bash 脚本/命令外,它的效果非常好。
我无法在网上找到适合我的解决方案。

我想运行一个基本上类似于ctrl + c 的命令,但来自我的 Electron 应用程序。

我已经精简了我的代码以使其更易于阅读:

我的index.js 文件

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() 已被调用。

在我寻找答案的过程中,这个方法已经出现了好几次。有谁知道我做错了什么?

谢谢大家

非常感谢您的帮助

【问题讨论】:

    标签: node.js electron child-process spawn


    【解决方案1】:

    试试这个。

    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

    【讨论】:

    • @Moe-Joe 解决问题了吗?
    • @Sudhaker 不走运。控制台会记录数据,但进程不会停止,它会照常继续。
    猜你喜欢
    • 2022-10-18
    • 2011-05-19
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多