InitScript Debian Insserv无法启动

时间:2014-09-03 13:00:43

标签: linux jar debian boot init

我在使用Cubian的Cubietruck上的Initscript遇到了问题(Debian Wheezy) 我想在启动后启动可执行的Jarfile。

因此我创建了以下ShellScript来启动我的jar(/usr/local/bin/startplt.sh):

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
JAVA=/usr/bin/java
JARFILE=/home/cubie/plt.jar
USER=cubie
/bin/su - $USER -c "$JAVA -jar $JARFILE &"

从控制台运行此脚本。

然后我创建了另一个脚本文件,用作启动/停止Java应用程序的服务。它应该像骨架模板一样编写,但我没有得到任何骨架文件。这是我的服务(/etc/init.d/startjar)

#! /bin/sh
### BEGIN INIT INFO
# Provides:          startjar
# Required-Start:    $remote_fs $syslog $local_fs $network
# Required-Stop:     $remote_fs $syslog $local_fs $network
# Default-Start:     5
# Default-Stop:      0 1 6
# Short-Description: Starts plt.jar
# Description:       starts a the main jarfile
### END INIT INFO

NAME="startjar"
DESC="Starts /home/cubie/plt.jar"

test -x $DAEMON || exit 0

case "$1" in
 start)
    /usr/local/bin/startplt.sh
    ;;
 stop)
    pkill -f /home/cubie/plt.jar
    pkill -f iceweasel
    ;;
 *)
    exit 1
    ;;
esac
exit 0

Jar正在启动Iceweasel以显示一些数据,这就是为什么它被杀死onStop。 通过控制台启动和停止此脚本的工作原理如下:

/etc/init.d/startjar start
/etc/init.d/startjar stop

除了添加服务

insserv -d  /etc/init.d/startjar 

但是在开机后根本没有任何事情发生。 我不太熟悉运行级别和必需的停止/启动变量 实际上通常不使用shell脚本。 我真的没看到我做错了什么或我的脚本丢失了什么:(

谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:1)

您已将服务配置为在运行级别5中启动,但Debian默认启动到运行级别2。这可能就是为什么它不能开始你的服务。

修改Default-Start以包含2,然后运行update-rc.d startjar defaults或类似。

顺便说一下,我认为这个问题应该转移到serverfault。

答案 1 :(得分:0)

非常感谢你的帮助,但我自己得到了另一种解决方案。

我在/home/cubie/.config/autostart/创建了一个桌面条目,现在在xsession之后启动我的jar。 IM