我想从node.js脚本重启/关闭我的linux操作系统.只有我能找到的东西是在脚本中停止快速服务器或运行功能的方法,而不是关闭/重启我的linux的方法.
有没有办法做到这一点?
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)
您应该使用child_process和 像这样的命令sudo /sbin/reboot。此外,您还需要配置sudo为允许 node.js 用户/sbin/reboot在没有密码提示的情况下运行。看/etc/sudoers。
| 归档时间: |
|
| 查看次数: |
9300 次 |
| 最近记录: |