![](/img/trans.png)
[英]Why would a fresh install of node.js and protractor error out with `execvp` No such file or directory?
[英]Node.js - spawned process is generating error “execvp(): No such file or directory”
我有以下旨在產生和分離子進程的代碼,這只是同一目錄中的另一個node.js腳本。 這是我正在運行的確切代碼:
var fs = require('fs');
var child = require('child_process');
var out = fs.openSync('/tmp/daemon.log', 'a');
var options = {
cwd: process.cwd(),
env: process.env,
detached: true,
stdio: ['ignore', out, process.stderr]
};
child.spawn('/usr/local/bin/node ./daemon.js', [], options).unref();
daemon.js
現在所做的所有daemon.js
都是在兩秒鍾的超時后退出:
setTimeout(function() {
console.log('done');
}, 2000);
如果我直接從終端運行daemon.js
,它將按預期工作。 如果我運行傳遞給child.spawn()
的同一命令,它將按預期工作。 但是,當我運行腳本時,它將生成此錯誤:
execvp(): No such file or directory
似乎不是特定於node.js的,並且我在弄清楚問題出在哪里時遇到了麻煩。 有人有什么建議嗎?
作為參考,這是在OS X 10.8.5服務器上,其節點使用Homebrew在路徑/usr/local/Cellar/node/0.10.25/bin/node
安裝,並符號鏈接到/usr/local/bin/node
。
編輯
現在,代碼可以完美運行,並且添加了avdantage,與運行主腳本的工作目錄無關!
var fs = require('fs');
var child = require('child_process');
var out = fs.openSync('/tmp/daemon.log', 'a');
var options = {
cwd: process.cwd(),
env: process.env,
detached: true,
stdio: ['ignore', out, process.stderr]
};
child.spawn('/usr/local/bin/node', [__dirname + '/daemon.js'], options).unref();
嘗試改變
child.spawn('/usr/local/bin/node ./daemon.js', [], options).unref();
至:
child.spawn('/usr/local/bin/node', ['./daemon.js'], options).unref();
要么:
child.spawn('node', ['daemon.js'], options).unref();
試一試
__dirname+'/daemon.js'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.