linux - InitScript Debian Insserv 未在启动时启动

标签 linux jar debian boot init

我在使用 Cubian (Debian Wheezy) 的 Cubietruck 上遇到了一个初始化脚本问题 我想在引导后启动一个可执行的 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 脚本。 我真的不明白我做错了什么或者我的脚本丢失了什么:(

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

最佳答案

您将服务配置为以运行级别 5 启动,但 Debian 默认启动到运行级别 2。这可能就是它不启动您的服务的原因。

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

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

关于linux - InitScript Debian Insserv 未在启动时启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25645043/

相关文章:

java - 有没有办法启动隐藏的jar文件?

java - 如何在持续集成服务器中使用 FatJar(在 Eclipse 之外)?

Spring Boot 应用程序作为 systemd 服务 : log file

c++ - NetBeans的代码协助在Qt上无法正常工作

linux - 使用 GREP 查找是否在特定文件夹中找到文件的每一行

linux - 当我安装 "cronie"时,系统提到我这个 cronie 需要 "dailyjobs"

linux - 启动 Upstart 任务 - 未知作业错误

java - simplecaptcha-1.2.1.jar 无法读取或不是有效的 ZIP 文件

debian - 使用 Ansible 使用 debconf-set-selections 自动化*仅* exim4 配置

php - 使用PHP邮件功能发送电子邮件,邮件服务器的配置