Nodejs:Bash找不到节点?

时间:2011-07-10 18:47:30

标签: bash node.js

#!/bin/sh
exec node /opt/nodejs/first/app.js 1>>/opt/nodejs/first/log/output 2>>/opt/nodejs/first/log/error

此shell脚本会抛出错误:

exec: 2: node: not found

我正在尝试在系统启动时启动它:

sudo update-rc.d autostart.sh defaults 95

我做错了什么?

也许启动级别错误或订单号或其他?

谢谢;)

2 个答案:

答案 0 :(得分:4)

您需要设置PATH环境变量以包含node二进制文件所在的目录。为了在启动时启动,你在运行什么操作系统?我建议您在Ubuntu中使用upstart系统。这是一个简单的upstart脚本,使节点服务器可以作为守护进程使用。

description "start and stop your node.js server"
version "1.0"
author "You <you@yoursite.example>"

start on startup
respawn

env NODE_ENV=production
env PATH=/path/to/node/bin
chdir /path/to/your/app/root
exec su -c 'node app/server.js' www-data  >> var/log/stdout.log 2>&1

答案 1 :(得分:2)

我不知道node,但这里的典型错误是执行脚本时PATH变量不包含程序的路径。最简单的解决方法是简单地使用完整路径:

#!/bin/bash
exec /path/to/node ...