【问题标题】:creating service from executing a JAR file in UBUNTU通过在 UBUNTU 中执行 JAR 文件来创建服务
【发布时间】:2015-06-18 10:32:38
【问题描述】:

我正在尝试通过在 Ubuntu 机器中执行 jar 文件来创建服务。我用下面的code

创建了一个包装器
#!/bin/sh
SERVICE_NAME=MyService
PATH_TO_JAR=/home/nani/Documents/My_Build_executable/My_Build-12-06.jar
PID_PATH_NAME=/tmp/MyService-pid
case $1 in
    start)
        echo "Starting $SERVICE_NAME ..."
        if [ ! -f $PID_PATH_NAME ]; then
            nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
                        echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is already running ..."
        fi
    ;;
    stop)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stoping ..."
            kill $PID;
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH_NAME
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
    restart)
        if [ -f $PID_PATH_NAME ]; then
            PID=$(cat $PID_PATH_NAME);
            echo "$SERVICE_NAME stopping ...";
            kill $PID;
            echo "$SERVICE_NAME stopped ...";
            rm $PID_PATH_NAME
            echo "$SERVICE_NAME starting ..."
            nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
                        echo $! > $PID_PATH_NAME
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
esac

但我坚持使用PID_PATH_NAME。这个 PID 是什么,我需要做什么来配置/创建/修改这个?请帮我。

【问题讨论】:

    标签: service ubuntu-14.04 executable-jar pid java-service-wrapper


    【解决方案1】:

    术语PID 代表进程标识符,是每个进程获得的唯一编号。通过将 PID 保存到文件中,系统稍后可以找到服务的 PID,并且能够在服务应该停止时向其发送停止信号。

    【讨论】:

    • 谢谢。但是如何创建一个以及我需要将那个放置在哪里?给我一个详细的例子
    • @Nani 现在的路径和脚本有什么问题?
    • @ Joachim :我用上述代码创建了一个包装器,并启动了服务,但它没有运行。当我试图停止服务时,它显示“/etc/init.d/Myserv: 31: kill: No such process”。所以我认为 PID 可能有一些我错过的东西
    • @Nani 这似乎表明实际的服务程序没有启动。启动服务时,您是否在日志中收到任何错误消息?它是否取决于首先要开始的其他事情?你真的应该在/etc/init.d/skeleton 上建模你的服务脚本。
    • @ Joachim :运行此服务我没有看到任何错误,当然此执行没有任何依赖关系
    猜你喜欢
    • 2016-11-23
    • 2015-11-20
    • 1970-01-01
    • 2017-11-14
    • 2018-03-04
    • 1970-01-01
    • 2020-09-14
    • 2012-12-18
    • 1970-01-01
    相关资源
    最近更新 更多