2015-09-06 93 views
3

如何在Node.JS的後臺運行命令?在Python中,我有以下代碼(對於Windows)來使exe在後臺運行。 child_process.execFile沒有對此有一個支持...從Node.JS在Windows的後臺運行命令

si = subprocess.STARTUPINFO() 
si.dwFlags |= subprocess.STARTF_USESHOWWINDOW 
si.wShowWindow = 4 #constant for SHOWNOACTIVATE 

subprocess.Popen(startCommands, startupinfo = si) 

是否有在Node.js的STARTUPINFO支持?

+0

你有沒有看着child_process.spawn:https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options – bonesbrigade

回答

6

你想要的方法是spawn。你要注意的是你如何運行該文件。您可能希望使用python命令執行它,而不是將該文件作爲可執行文件運行。 spawn在後臺運行該文件。您可能會對「背景中」的含義感到困惑。爲了澄清節點中的所有內容可以被認爲是「在後臺」,如果它不是專門被認爲是同步功能的話。當runnable.py正在運行時,以下操作不會阻止節點中的進一步執行。但是,spawnSync命令在節點中同步運行,這意味着它將防止在運行時執行任何其他代碼。

var spawn = require('child_process').spawn 

var runnable = spawn('python', ['./runnable.py']); 

//optionally log the output 
runnable.stdout.on('data', function (data) { 
    console.log(data.toString()); 
}) 

//code here will continue to run while running.py executes