【问题标题】:Open terminal from JavaScript and run bash command Linux从 JavaScript 打开终端并运行 bash 命令 Linux
【发布时间】:2021-08-20 06:42:44
【问题描述】:

我正在尝试运行一个 bash 文件。 我可以打开终端并编写 bash run.sh ,它工作正常。但我正在尝试通过 JavaScript 来做到这一点。我正在尝试打开终端并在该终端中运行命令。

let extExecCommand = `bash runtheme.sh`;
childProcess.spawnSync(extExecCommand, {shell: true});

run.sh 的内容是这样的

#!/usr/bin/env bash
#This is a comment
 
#defining a variable
export FLASK_APP=script.py
export FLASK_DEBUG=1
flask run
xdg-open http://127.0.0.1:5000/

实际上,我想通过单击网站上的按钮来运行烧瓶应用程序。 目前我正在这样做,它将运行烧瓶应用程序,但我无法杀死子进程。我需要能够通过单击按钮运行此应用程序并且需要能够关闭它。我们可以通过在终端窗口中按 ctrl+c 来实现。那么有什么方法可以从 JavaScript 打开终端窗口并在该窗口中运行“bash run.sh”?

我也尝试让 run.sh 可执行,但它不会自动在窗口中打开地址。

【问题讨论】:

    标签: javascript linux bash flask


    【解决方案1】:

    Javascript 是客户端,这意味着您的代码只能在客户端浏览器沙箱上运行。因此,出于明显的安全原因,您不能在客户端机器上执行 shell 命令。你可以在你自己的本地机器上运行它。因此,如果您想这样做,这是我的代码:

    const execSync = require('child_process').execSync;
    const result = execSync('bash /path/to/executable.sh', {encoding: 'utf-8'});
    
    console.log(result)
    
    

    如果你想了解更多关于沙盒的信息,我推荐这篇文章让我更清楚:Sandboxes Explained

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多