Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js WebStorm如何以root用户身份运行nodejs来执行shell命令?_Node.js_Sudo_Webstorm - Fatal编程技术网

Node.js WebStorm如何以root用户身份运行nodejs来执行shell命令?

Node.js WebStorm如何以root用户身份运行nodejs来执行shell命令?,node.js,sudo,webstorm,Node.js,Sudo,Webstorm,如何使用root权限通过WebStorm IDE运行node.js应用程序,以便让node.js运行shell命令 提前谢谢 最简单的方法是使用root运行WebStorm本身,父节点进程将继承特权。正如CrazyCoder所提到的,可以使用shell脚本来实现这一点。要详细说明,脚本将如下所示: !/bin/bash sudo/path/to/node$@ 此外,还需要运行sudo visudo并添加以下行: username ALL=(ALL) NOPASSWD: /path/to/node

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


提前谢谢

最简单的方法是使用root运行WebStorm本身,父节点进程将继承特权。

正如CrazyCoder所提到的,可以使用shell脚本来实现这一点。要详细说明,脚本将如下所示:

!/bin/bash sudo/path/to/node$@ 此外,还需要运行sudo visudo并添加以下行:

username ALL=(ALL) NOPASSWD: /path/to/node
最后,需要chmod+x脚本,然后将脚本的路径指定为WebStorm中节点的路径

[WS=WebStorm]

如果您还想在WS中调试它,可以添加一个小的变体/补充: 不以root用户身份运行WS:

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

我用的是nodemon,所以我还是想用它 在WS:Tools->Open terminal.内打开终端窗口。。 在终端运行sudo nodemon-debug=40155-nolazy server.js 40155是稍后要连接的调试端口,您可以只运行node而不是nodemon 按照说明在WS中创建远程调试配置,并将端口设置为40155 选择调试配置并点击WS-debug按钮 设置断点和利润:
然后很容易返回WS-terminal窗口并重新运行服务器。

补充krisp的答案:您可能还希望将环境变量从WS-configuration传递到工作状态

要做到这一点,请在scipt中向sudo添加-E,如下所示

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

你好感谢您花时间回答:D。还有其他方法吗?不管是不是最容易;一种包装器外壳脚本,它将通过sudo运行原始节点脚本,并修改系统sudoers,以便在运行此脚本时不要求输入密码?