python - 如何在node.js中实现这个python代码片段

标签 python node.js linux

我需要在 Node.js 中编写这个

vCmd = any cmd that needs root privileges
vPwd = "1234" #asked before in a seperate dialog
vProc = subprocess.Popen(["sudo", "-S", "xfce4-terminal", "-e", vCmd], stdin=subprocess.PIPE, stderr=subprocess.PIPE)
vResult = vProc.communicate(vPwd + '\n')[1]

(也许可以使用嵌套的child_process.spawn)
重要的是以编程方式使用 sudo 和密码

最佳答案

使用node的child_process模块中的spawn函数,并将sudo密码写入stdin:

var spawn = require('child_process').spawn;
var vCmd = '<command to execute>';
var args = [ '-S', 'xfce4-terminal', '-e', vCmd ];
// The sudo password
var pw = '******';
// Spawn the sudo command
var proc = spawn( 'sudo', args );
// Log stdout to console.
proc.stdout.on('data', ( data ) => {
    console.log( data.toString() );
});
// Send password to stdin.
proc.stdin.write( pw+'\n' );
// Close stdin.
proc.stdin.end();

关于python - 如何在node.js中实现这个python代码片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44607462/

相关文章:

java - pyimagej setup + conda : No Java runtime present, 请求安装

Python网络驱动程序: reusing setUp and tearDown

linux - 在linux中执行一个目录

linux - vmsplice(2) 的语义是什么,有和没有 gifting?

linux - Typescript 在 Linux 上构建 Sublime Text 3 - [Errno 20] 不是目录

python - 如何在 Django 中编写自己的装饰器?

python - PyQt 允许枚举值和字符串

node.js - 使用 Mongoose 其他行为更新 $inc 然后 MongoDB 更新

node.js - 在 couchdb 中使用不同的 key 发出两次文档

node.js - 从 mongoose 子模式填充对象 ID 数组