无法将节点模块作为服务运行

时间:2014-04-09 17:38:30

标签: node.js service node-modules smartos

我试图在我的localzone中将节点模块npm-lazy作为服务运行。 如果我在命令行上运行启动命令它运行良好。我用它来运行它:

npm_lazy --config /etc/npm-lazy-config.js

但是如果想要将模块作为服务运行,它会不断收到此错误消息:

[ Apr  9 01:13:31 Executing start method ("/opt/local/bin/npm_lazy --config /etc/npm-lazy-config.js"). ]

path.js:336
    var isAbsolute = path.charAt(0) === '/',
                          ^
TypeError: Cannot call method 'charAt' of undefined
    at Object.exports.normalize (path.js:336:27)
    at Object.<anonymous> (/opt/local/lib/node_modules/npm_lazy/config.js:2:21)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/opt/local/lib/node_modules/npm_lazy/bin/npm_lazy:37:14)
    at Module._compile (module.js:456:26)
[ Apr  9 01:13:32 Stopping because service exited with an error. ]
[ Apr  9 01:13:32 Executing start method ("/opt/local/bin/npm_lazy --config /etc/npm-lazy-config.js"). ]

我创建了具有多种功能的服务,我将所有目录添加到我创建的service.xml中的envvar部分中

echo $PATH

但似乎&#34;路径&#34;无法找到nodejs的依赖关系。 请帮忙。

1 个答案:

答案 0 :(得分:0)

看起来npm_lazy假设将设置HOME环境变量,但它没有在SMF中设置。您可以通过将其添加到XML清单的envvar部分来设置它。