美文网首页
Linux_设置Java程序在Ubuntu系统中开机启动

Linux_设置Java程序在Ubuntu系统中开机启动

作者: ADark0915 | 来源:发表于2018-03-05 17:01 被阅读627次

    目前协助同事在搭建公司的自动化测试平台,服务器是Ubuntu系统。我做的管理设备连接的程序需要被设置成开启启动。经过查阅资料,最终实现了需求。

    1. 编写shell脚本
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:             start-adb-connect-manager
    # Required-Start:       $remote_fs $syslog
    # Required-Stop:        $remote_fs $syslog
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:
    ### END INIT INFO
    NAME=/home/adark0915/mxm_appium/ADBConnectManager/adb-connnect-manager-1.0.20180305142648-SNAPSHOT.jar
    echo $NAME
    ID = `ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
    echo $ID
    echo "------------------------------------------------------------"
    for id in $ID
    do
    kill -9 $id
    echo "killed $id"
    done
    echo "-------------Service have been stopped already------------"
    
    nohup java -jar $NAME /dev/null 2>&1 &
    echo "-------------程序已启动,请键入:ps -ef | grep java 进行查看-----------"
    

    其中, BEGIN INIT INFO 的内容是将程序设置成开机启动的初始化信息,这个在脚本中必须声明,不然会报错。
    另外,Java可执行程序的名称尽量用绝对路径,避免因路径问题导致的其他错误。

    2. 设置脚本的可执行权限
    sudo chmod 755 <脚本名称>.sh
    
    3. 将脚本添加到启动脚本,并设置它的优先级

    90 表示一个优先级,数值越大表示执行的越晚

    sudo mv <脚本名称>.sh /ect/init.d/
    // 切换到/ect/init.d/目录下
    cd /ect/init.d/
    sudo update-re.d <脚本名称>.sh defaults 90
    

    移除开机脚本:sudo update-rc.d -f <脚本名称>.sh remove

    相关文章

      网友评论

          本文标题:Linux_设置Java程序在Ubuntu系统中开机启动

          本文链接:https://www.haomeiwen.com/subject/ycmhfftx.html