我在使用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 &"
从控制台运行此脚本 .
然后我创建了另一个脚本文件,作为启动/停止Javaapplication的服务 . 它应该像骨架模板一样编写,但我没有得到任何骨架文件 . 这是我的服务(/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 回答
您已将服务配置为在运行级别5中启动,但Debian默认启动到运行级别2 . 这可能是它无法启动您的服务的原因 .
修改
Default-Start
以包含2,然后运行update-rc.d startjar defaults
或类似 .顺便说一下,我认为这个问题应该转移到serverfault .
非常感谢你的帮助,但我自己得到了另一种解决方案 .
我在
/home/cubie/.config/autostart/
中创建了一个桌面条目,它在xsession之后启动我的jar . IM