我如何从nodejs重启linux

Pau*_*les 6 linux node.js

我想从node.js脚本重启/关闭我的linux操作系统.只有我能找到的东西是在脚本中停止快速服务器或运行功能的方法,而不是关闭/重启我的linux的方法.

有没有办法做到这一点?

Sim*_*son 6

nodejs命令是:

require('child_process').exec('sudo /sbin/shutdown -r now', function (msg) { console.log(msg) });
Run Code Online (Sandbox Code Playgroud)

要避免将nodejs作为su运行,您必须授予运行此命令的权限.通过在/etc/sudoers.d/目录下创建文件来授予权限,例如

$ sudo /etc/sudoers.d/mysudoersfile
Run Code Online (Sandbox Code Playgroud)

添加以下行并将pi以下代码段更改为用户nodejs将运行为:

pi ALL=/sbin/shutdown
pi ALL=NOPASSWD: /sbin/shutdown
Run Code Online (Sandbox Code Playgroud)

该技术也可以应用于其他命令.例如,如果要允许用户(反过来nodejs)重新启动网络,请将以下内容添加到sudoers文件中.

pi ALL=/etc/init.d/networking
pi ALL=NOPASSWD: /etc/init.d/networking
Run Code Online (Sandbox Code Playgroud)


use*_*253 0

您应该使用child_process和 像这样的命令sudo /sbin/reboot。此外,您还需要配置sudo为允许 node.js 用户/sbin/reboot在没有密码提示的情况下运行。看/etc/sudoers