2014-09-03 57 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