启动脚本问题

启动脚本问题

我试图让 Chandler 在用户 'chandler' 下在启动时在 debian 机器上运行,并尝试了以下脚本,将其定位在 init.d 中:

#! /bin/sh
#
# /etc/init.d/chandler
#

RETVAL=$?
CHANDLER_HOME="/chandler"

# check input
case "$1" in
  start)
    if [ -f $CHANDLER_HOME/bin/osafsrvctl ];
      then
        /bin/su chandler $CHANDLER_HOME/bin/osafsrvctl start
    fi
    ;;
  stop)
    if [ -f $CHANDLER_HOME/bin/osafsrvctl ];
      then
        /bin/su chandler $CHANDLER_HOME/bin/osafsrvctl stop
    fi
    ;;
  *)
    echo "Usage: /etc/init.d/osafsrvctl {start|stop}"
    exit 1
    ;;
esac

exit $RETVAL

然后我跑了:

update-rc.d chandler defaults

我已经检查过 init.d 中的启动脚本有 755 权限......但没有任何效果。

我是否忽略了这里一些明显的东西?

谢谢您的指点。

更新:根据以下建议,这是我添加到脚本中的初始化标头:

### BEGIN INIT INFO
# Provides:          chandler
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop chandler server
### END INIT INFO

答案1

查看中的其他脚本/etc/init.d,您应该会看到一个与以下示例类似的 LSB 标头注释块fetchmail

### BEGIN INIT INFO
# Provides:          fetchmail
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      1
# Short-Description: init-Script for system wide fetchmail daemon
### END INIT INFO

需要这种类型的块。

man update-rc.d

update-rc.d 有两种将脚本安装到启动顺序的操作模式。一种是使用命令行参数来决定顺序和运行级别配置的传统模式,另一种是使用 init.d 脚本 LSB 注释标头中的依赖项和运行级别信息的默认模式。此类标头必须存在于 init.d 脚本中。有关 LSB 标头格式的详细信息,请参阅 insserv(8) 手册页。

相关内容