1.我们先来个简单的start,status,stop程序:

[root@localhost ~]# cat /home/tomcat/jarservice.sh
#!/bin/bash
CU_PID=/home/tomcat/cupid.pid
start()
{
echo -n "start java"
nohup java -jar /home/tomcat/exchange-1.4.jar >/dev/null 2>&1 &
new_agent_pid=$!
echo "$new_agent_pid" > $CU_PID
}
stop()
{
if [ -f /home/tomcat/cupid.pid ];then
SPID=`cat /home/tomcat/cupid.pid`
if [ "$SPID" != "" ];then
kill -9 $SPID
echo >$CU_PID
echo "stop sucess"
fi
fi
}
CheckProcessStata()
{
CPS_PID=$1
if [ "$CPS_PID" != "" ] ;then
CPS_PIDLIST=`ps -ef|grep $CPS_PID|grep -v grep|awk -F" " '{print $2}'`
else
CPS_PIDLIST=`ps -ef|grep "$CPS_PNAME"|grep -v grep|awk -F" " '{print $2}'`
fi

for CPS_i in `echo $CPS_PIDLIST`
do
if [ "$CPS_PID" = "" ] ;then
CPS_i1="$CPS_PID"
else
CPS_i1="$CPS_i"
fi

if [ "$CPS_i1" = "$CPS_PID" ] ;then
#kill -s 0 $CPS_i
kill -0 $CPS_i >/dev/null 2>&1
if [ $? != 0 ] ;then
echo "[`date`] MC-10500: Process $i have Dead"
kill -9 $CPS_i >/dev/null 2>&1

return 1
else
#echo "[`date`] MC-10501: Process is alive"
return 0
fi
fi
done
echo "[`date`] MC-10502: Process $CPS_i is not exists"
return 1
}

status()
{
SPID=`cat /home/tomcat/cupid.pid`
CheckProcessStata $SPID >/dev/null
if [ $? != 0 ];then
echo "unixdialup:{$SPID} Stopped ...."
else
echo "unixdialup:{$SPID} Running Normal."
fi

}

restart()
{
echo "stoping ... "
stop
echo "staring ..."
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=1
esac
exit $RETVAL

2.再写个服务文件:

[root@localhost ~]# cat /lib/systemd/system/jar.service
[Unit]
Description=java
After=network.target

[Service]
Type=forking
ExecStart=/home/tomcat/jarservice.sh start
ExecReload=/home/tomcat/jarservice.sh restart
ExecStop=/home/tomcat/jarservice.sh stop
#PrivateTmp=true
User=tomcat
[Install]
WantedBy=multi-user.target
[root@localhost ~]#

3.开机测试:成功!!!

[root@localhost ~]# systemctl status jar.service
● jar.service - java
Loaded: loaded (/usr/lib/systemd/system/jar.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2017-07-27 01:10:38 EDT; 36s ago
Process: 858 ExecStart=/home/tomcat/jarservice.sh start (code=exited, status=0/SUCCESS)
Main PID: 870 (java)
CGroup: /system.slice/jar.service
└─870 java -jar /home/tomcat/exchange-1.4.jar

转载于:https://www.cnblogs.com/Jt00/p/7244330.html

java程序在centos7里面开机自启动相关推荐

  1. centos 开机启动java_java程序在centos7里面开机自启动

    1.我们先来个简单的start,status,stop程序: [[email protected] ~]# cat /home/tomcat/jarservice.sh #!/bin/bash CU_ ...

  2. centos7 添加开机自启动

    方法一:修改 /etc/rc.d/rc.local 文件 linux的启动过程如下: /etc/rc.d/rc.local文件中写入了什么命令,在每次系统启动时都会执行一次,我们可以修改这个文件,来实 ...

  3. Win10系统程序以管理员身份开机自启动配置

    参考来源:   https://jingyan.baidu.com/article/a681b0de6a322c3b18434630.html 1.  在Cortana中输入并打开任务计划程序,如下图 ...

  4. CentOS7 的开机自启动systemctl

    说明 centos7自启项已不用chkconfig改为: systemctl list-unit-files 启停 systemctl enable redis systemctl disable r ...

  5. ubuntu下以管理员权限开机自启动自己的程序

    实现目的:让自己编写的程序在ubuntu下开机自启动,并且要以管理员权限启动 实现步骤: 1.打开"Startup Applications" 程序,如下图: 或者在终端输入命令: ...

  6. linux开发板开机自启动脚本,linux 添加开机自启动脚本

    Linux设置服务开机自动启动的方式有好多种,这里介绍一下通过chkconfig命令添加脚本为开机自动启动的方法. 1. 编写脚本autostart.sh(这里以开机启动redis服务为例),脚本内容 ...

  7. CentOS7如何设置开机自启动程序、开机自启动脚本?

    文章目录 1.把启动程序的命令添加到`/etc/rc.d/rc.local`文件中 CentOS7.9里的`/etc/rc.local`文件 注意:`/etc/rc.d/rc.local`可能没有可执 ...

  8. java程序设置开机自启动

    编写批量启动脚本 先创建一个start.bat的文件,直接创建一个txt将后缀名称改为bat就可以 在脚本内添加如下代码 @echo off taskkill /f /im java.exe star ...

  9. Centos7开机自启动手册

    Centos7开机自启动工作手册 文章目录 Centos7开机自启动工作手册 前言 开机自动执行脚本 方法一:在/etc/rc.local文件中添加自启动命令(推荐) 方法二:在/etc/init.d ...

最新文章

  1. VS2012发布网站详细步骤
  2. Winform中使用异或算法对数字进行加密解密
  3. unity导入osgb格式的数据_游戏开发声音格式的选择
  4. C语言九十五之实现经典的反转数组(通过指针或数组下标操作)
  5. 撩妹学会这一招,就没有人能拒绝你!
  6. 关于Pac-Man,你所要了解的 一切
  7. 数据库“裸奔”再引祸端:VOIPO数百万呼叫和短信日志流出
  8. 张朋——一个血癌患者,他需要我们大家的救助!(附张朋求助网)
  9. 使用pkg打包编译nodejs程序,手动设置缓存内容
  10. 字节跳动面试真题:java实现远程控制
  11. 蓝桥杯 ALGO-31算法训练 开心的金明(01背包,动态规划)
  12. KNN 算法实现 Iris 数据集分类
  13. 98.android 全国城市区号,座机号区号匹配对应城市
  14. 新概念英语第二册 阅读
  15. 5.秒杀模块-基于redis缓存商品秒杀信息
  16. 抢红包算法 c++_“抠抠族”的出行利器,斤斤计较的几何C为了节能果然够拼
  17. 基于tiny4412的u-boot移植(二)
  18. VR、AR和MR这些技术的区别
  19. 算法:找出1-10000之间的所有素数
  20. 深入分析分布式系统中互斥性与幂等性问题

热门文章

  1. Objective-C的基础数据结构
  2. 动态规划算法 - 钢条切割问题
  3. Linux Bash Shell学习(十八):String I/O——echo和printf
  4. Android RecyclerView 滑动到指定位置 RecyclerView 滑动到顶部
  5. 从实践的角度来回顾一下SQL注入
  6. Android音乐播放器高级开发
  7. 第三次作业——朱华泓
  8. vue 常见错的可能原因
  9. Educational Codeforces Round 15 套题
  10. git找回当前目录下误删的所有文件