Javascript 节点无法在启动脚本上运行
我有一个运行bash脚本的简单init.d脚本:Javascript 节点无法在启动脚本上运行,javascript,node.js,bash,Javascript,Node.js,Bash,我有一个运行bash脚本的简单init.d脚本: #! /bin/sh ### BEGIN INIT INFO # Provides: registertool # Required-Start: $network $local_fs $syslog $remote_fs networking # Required-Stop: $network $local_fs $syslog $remote_fs # Default-Start: 2 3 4 5 #
#! /bin/sh
### BEGIN INIT INFO
# Provides: registertool
# Required-Start: $network $local_fs $syslog $remote_fs networking
# Required-Stop: $network $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts registration script
# Description: Starts the registration script
### END INIT INFO
do_start() {
cd $APP_DIR
./register.sh -v &
echo $! > "$PID_FILE"
log_action_msg "Registration started with pid $!"
}
case $1 in
start)
do_start
;;
stop)
log_end_msg 0
;;
restart|force-reload)
log_end_msg 0
;;
*)
echo $USAGE >&2
exit 1
;;
esac
在脚本中,我将节点定义为node=$(哪个节点)
,并将应用程序运行为$node myApp.js
。我已将脚本中的路径定义为
PATH="$PATH:/usr/local/bin:/usr/sbin:/sbin:/usr/bin/:/bin"
但是,我的节点甚至没有被调用!我做错了什么?我还需要等待什么才能启动?节点=$(哪个节点)
将搜索$PATH
以查找可执行文件。如果您的路径尚未定义,它将找不到任何内容。尝试让脚本记录每一步,这样您就可以看到它的横向发展
/register.sh
将取决于当前目录是否为特定目录。在系统启动期间,cwd
甚至可能没有定义。我忘了发布,我已经定义了路径。我会更新我的答案。这不是问题所在,而且我自己也专门去开车。调用文件/register.sh
,因为还有其他shell命令正在正常执行。当它到达nodei时,它会失败。如果您将希望启动节点的命令行包装起来,并将其回送并重定向到/tmp文件,系统启动时它是什么样子的?LOCAL=false VERBOSE=true/usr/LOCAL/bin/node./get\u register\u data.js
您的脚本cd
是指向get\u register\u data.js
的位置,还是依赖于当前目录?如果没有,请尝试用绝对路径替换/get\u register\u data.js
?cd
转到get\u register\u data
所在的位置。我甚至还尝试过绝对路径。有趣的是,每隔一段时间get\u register\u data
都会运行。有些东西还没有准备好让Node运行,我无法弄清楚是什么