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

2018-03-05  本文已影响627人  ADark0915

目前协助同事在搭建公司的自动化测试平台,服务器是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

上一篇 下一篇

猜你喜欢

热点阅读