linux - 我如何从 nodejs 重启 linux

标签 linux node.js

我想通过 node.js 脚本重启/关闭我的 linux 操作系统。只有我能找到的东西是停止快速服务器或脚本内正在运行的函数的方法,但不是关闭/重新启动我的 hole linux 的方法。

有什么办法吗?

最佳答案

nodejs 命令是:

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

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

$ sudo /etc/sudoers.d/mysudoersfile

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

pi ALL=/sbin/shutdown
pi ALL=NOPASSWD: /sbin/shutdown

此技术也可以应用于其他命令。例如,如果您希望允许用户(依次是 nodejs)重新启动网络,则将以下内容添加到您的 sudoers 文件中。

pi ALL=/etc/init.d/networking
pi ALL=NOPASSWD: /etc/init.d/networking

关于linux - 我如何从 nodejs 重启 linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23032149/

相关文章:

node.js - Node && Mongodb findOne 不工作

node.js - Express req.on ('end' , ...) 未触发

Linux、符号链接(symbolic link) Dir、Meld 和 git

linux - 在 vimrc 中设置环境变量

c - exec*()后ps会显示什么名字?

mysql - TypeORM with MySQL Error : Pool is closed. 调用数据库时测试卡住了

javascript - 严格模式下不允许对象文字中的重复数据属性 grunt-connect-proxy

linux - 无法登录自定义镜像创建的Linux虚拟机

c - 如何为 linux 内核模块开发配置 clang_complete?

node.js - 找不到 AngularJS Express 咖啡 Assets Controller