2014-09-03 52 views
0

我在Cubietruck上工作Cubian(Debian Wheezy)时遇到Initscript问题 我想在引导后启动可执行Jarfile。InitScript启动Debian Insserv

因此,我创建了下面的shell启动我的罐子(/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 

罐子开始Iceweasel表现出一些数据这就是为什么它杀死的onStop。 启动并通过控制台这个脚本的停止与工程:

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

除了增加服务

insserv -d /etc/init.d/startjar 

但开机无任何响应后。 我不是很熟悉运行级别和所需的停止/启动变量 实际上并不一般与shell脚本。 我真的不明白我做错了或我的剧本缺什么:(

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

回答

1

您配置了服务运行级别5启动,但Debian的引导进入运行级别2缺省情况下,这可能是为什么它不会启动服务。

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

顺便说一句,我认为这个问题应移至serverfault。

+0

我认为runlevels会像一个特定的状态,并且运行级别5也会到达。不过我编辑的默认启动为2 3 4 5 - > insserv -d /etc/init.d/startjar - > reboot - >仍然没有 – Zorb 2014-09-04 07:37:23

+0

请检查/etc/rc2.d中是否存在符号链接到startjar initscript 。例如。 'ls -l /etc/rc2.d/S startjar'。 – 2014-09-05 08:19:58

+0

对不起,我无法检查我是否重新设置了我为了拥有一个稳定的环境而做的事情 – Zorb 2014-09-08 13:02:53

0

非常感谢您的帮助,但我自己也得到了另一个工作解决方案。

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