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

java程序在centos7里面开机自启动的更多相关文章

  1. 如何把一个c语言程序做成windows服务开机自启动

    原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...

  2. CentOS7设置开机自启动方式

    方式一: # 在/etc/rc.d/rc.local文件中追加启动命令,该文件追加后,会随着机器自动后,自动运行文件中的命令 # vim /etc/rc.d/rc.local # 权限问题:在cent ...

  3. CentOS7设置开机自启动命令大全

    任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd  on              systemctl enable httpd.service 使某服务不自 ...

  4. 【linux基础】如何开机自启动某个程序-linux工具-ubuntu

    前言 实际使用中应用程序或者服务需要开机自启动,而不是人为手动开启运行,那么,该如何做呢,本文对此进行介绍. 操作过程 1. 确定系统的桌面环境: 具体可参考here; 2. 如何自启动: 博主ubu ...

  5. linux 精简开机自启动

    centos7 精简开机自启动 ntsysv rsyslog  crond  sshd network

  6. 红帽linux系统开机自启动脚本。

    其实很多东西在最后完成以后会觉得也就那样,有意思的是探究的过程. 前段时间老板要求把一个程序做成linux系统开机自启动脚本的模式. 首先你需要写一个脚本. 我这边建立了一个.sh的脚本,就是用脚本启 ...

  7. java程序,在windows下设置为开机自启动

    1.制作可运行jar包 2.设置开机自动,后台运行,确保不关 一下这几个方法是我试过的,由于有不同的问题,以后慢慢总结 (1).制作bat文件,放在"启动"里面 (2).设置组策略 ...

  8. Android开机自启动程序

    背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为 android.intent.action.BOOT_COMPLETED. ...

  9. CentOS7中设置Tomcat8开机自启动

    CentOS7中设置Tomcat8开机自启动 本文介绍了在centos7中配置tomcat的开机自启动的一些操作步骤,仅供参考. 环境是CentOS 7 ,jdk版本是1.8.0_191,tomcat ...

随机推荐

  1. Kubernetes-GC

    Kubernetes集群中垃圾回收(Garbage Collection)机制由kubelet完成.kubelet定期清理不再使用的容器和镜像,每分钟进行一次容器的GC操作,每五分钟进行一次镜像的GC ...

  2. hadoop jar x.jar 执行过程

    hadoop jar  x.jar  执行过程 Yarn框架执行内容 1,job.waitforcompletion() 启动 Runjar 进程  -> Resourcemanage申请一个j ...

  3. 为WPF中DropShadowBitmapEffect提供轻量级的替代品

    原文:为WPF中DropShadowBitmapEffect提供轻量级的替代品 为WPF中DropShadowBitmapEffect提供轻量级的替代品                         ...

  4. 【转】Django添加静态文件设置

    STATIC_URL = '/statics/'STATIC_ROOT= os.path.join(BASE_DIR, 'statics')STATICFILES_DIRS = ( os.path.j ...

  5. 【TRICK】[0,n)中所有大小为k的子集的方法

    << k) - ; <<n)) { int x = comb & -comb, y = comb + x; comb = (((comb & ~y)/x)> ...

  6. 1977: [BeiJing2010组队]次小生成树 Tree

    1977: [BeiJing2010组队]次小生成树 Tree https://lydsy.com/JudgeOnline/problem.php?id=1977 题意: 求严格次小生成树,即边权和不 ...

  7. sshd 防止暴力破解

  8. 完整的vue+vuex+api-router+database请求流程

  9. 创龙TMS320C6748开发找不到 tl.dsp.evm6748的问题研究

    1. 使用中遇到问题,看了一下帖子说是把tl.dsp.evm6748换成ti.platforms.evm6748可以编译过去.这个包是在XDCtools里面的. js: "D:/ti/ccs ...

  10. Chrome也疯狂之Vimium插件

    Chrome也疯狂之安装Vimium插件 由于最近换上了Mac,深感外设的累赘,脱离了外接鼠标以及键盘之后发现操作更加的流畅了(可怜我入手不到一年的机械键盘).当然脱离鼠标用触摸板来操作浏览器有时候还 ...