【问题标题】:WebStorm How run nodejs as root to execute shell commands?WebStorm 如何以 root 身份运行 nodejs 来执行 shell 命令?
【发布时间】:2012-07-19 00:49:49
【问题描述】:

如何通过具有 root 权限的 WebStorm IDE 运行 node.js 应用程序,以便让 node.js 运行 shell 命令?

提前致谢!

【问题讨论】:

    标签: node.js sudo webstorm


    【解决方案1】:

    最简单的方法是用root自己运行WebStorm,父节点进程会继承权限。

    【讨论】:

    • 嗨!感谢您花时间回答:D。还有另一种方法可以做到这一点吗?不管是否不是最简单的;)
    • 一种包装外壳脚本,将通过sudo 运行原始节点脚本并修改系统 sudoers 以便在运行此脚本时不要求输入密码?
    【解决方案2】:

    正如 CrazyCoder 所提到的,可以使用 shell 脚本来执行此操作。详细地说,脚本看起来像这样:

    #!/bin/bash
    sudo /path/to/node "$@"
    

    另外,还需要运行sudo visudo 并添加以下行:

    username ALL=(ALL) NOPASSWD: /path/to/node
    

    最后,有人想chmod +x 脚本,然后指定脚本的路径作为WebStorm 中节点的路径。

    【讨论】:

      【解决方案3】:

      [WS=WebStorm]

      如果您还想在 WS 中调试它,请稍加修改/添加: (无需以 root 身份运行 WS):

      要点:WS 终端窗口 + 调试端口 + 远程调试配置

      1. 我在用 nodemon,所以还是想用那个
      2. 打开终端窗口(在 WS 内:工具->打开终端..)
      3. 在终端中运行sudo nodemon --debug=40155 --nolazy server.js(40155 是稍后连接的调试端口,您可以只运行node 而不是nodemon
      4. 按照here 的说明在 WS 中创建远程调试配置,并将端口设置为 40155
      5. 选择该调试配置并点击 WS 调试按钮
      6. 设置断点和利润:)

      然后很容易返回到 WS 终端窗口并重新运行服务器。

      【讨论】:

        【解决方案4】:

        补充 krisp 的答案:您可能还希望从 WS 配置中传递环境变量以工作。

        为此,像这样在 scipt 中添加 -Esudo

        #!/bin/bash
        sudo -E node "$@"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-10
          • 1970-01-01
          • 1970-01-01
          • 2015-07-07
          • 2021-10-11
          相关资源
          最近更新 更多