#!/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
我做错了什么?
也许启动级别错误或订单号或其他?
谢谢;)
答案 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 ...