【问题标题】:Debian : my service doesn't autostartDebian:我的服务没有自动启动
【发布时间】:2014-04-08 09:05:25
【问题描述】:

我使用的是 debian 7 x64,我想在启动时添加服务自动启动,但它不起作用。

命令:“update-rc.d defaults”运行良好并返回我:update-rc.d:使用基于依赖的启动顺序

当我使用命令时我的脚本工作:服务启动/停止 但是当我重新启动计算机时,服务已关闭。

我的脚本开始于:

### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

我不明白怎么了?

编辑:

我为我的脚本尝试了另一种方法,我查看了这个示例:http://doc.ubuntu-fr.org/tutoriel/comment_transformer_un_programme_en_service,效果很好。总是不明白为什么其他方式不起作用。不管现在对我有什么好处,谢谢你的帮助。

【问题讨论】:

  • 在运行update-rc.d defaults 之前是否已将脚本添加到/etc/init.d/,并且/etc/init.d/ 中的脚本具有适当的权限(包括执行标志)?您在/var/log/ (messages/dmesg/syslog) 中看到任何提示吗?
  • 是的,它在 /etc/init.d 中。文件授权是 755。我可以启动“服务脚本启动”,它运行良好。我在日志中看不到任何内容,但我在 .gz 中有很多文件!
  • @user3224275 你设法解决了这个问题吗?我正在经历同样的事情。手动启动或重新启动服务没有任何问题。但系统重启后不会自动启动。

标签: linux debian


【解决方案1】:

其中一个原因可能是这样一个事实,即在操作系统启动期间启动脚本无法在已知位置找到 Java:env var JAVA_HOME、路径 /usr/bin/java 等。

就我而言,/var/log/boot.log 中有一条消息:Unable to find Java。来自launch.script的这一部分:

# Find Java
if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
    javaexe="$JAVA_HOME/bin/java"
elif type -p java > /dev/null 2>&1; then
    javaexe=$(type -p java)
elif [[ -x "/usr/bin/java" ]];  then
    javaexe="/usr/bin/java"
else
    echo "Unable to find Java"
exit 1
fi

要解决这个问题,您需要确保在操作系统启动期间 Java 在路径中可用。或者您可以按照deployment docs 的建议使用.conf 文件,其中包含JAVA_HOME 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多