节点在启动脚本上运行失败

Node fails to run on bootup script

本文关键字:运行 失败 脚本 启动 节点      更新时间:2023-09-26

我有一个简单的init。运行bash脚本的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=$(which node),并将应用程序定义为$NODE myApp.js。我在脚本中将路径定义为

PATH="$PATH:/usr/local/bin:/usr/sbin:/sbin:/usr/bin/:/bin"

然而,我的节点甚至没有被调用!我做错了什么?我还需要等待什么才能启动?

NODE=$(which node)将搜索$PATH以查找可执行文件。如果你的路径没有被定义,它将找不到任何东西。试着让你的脚本记录每一步,这样你就可以看到它偏离了什么方向。

./register.sh将取决于当前目录是否特定。在系统启动时,cwd甚至可能没有被定义