Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点无法在启动脚本上运行_Javascript_Node.js_Bash - Fatal编程技术网

Javascript 节点无法在启动脚本上运行

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 #

我有一个运行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
# 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运行,我无法弄清楚是什么