java程序在centos7里面开机自启动
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里面开机自启动的更多相关文章
- 如何把一个c语言程序做成windows服务开机自启动
原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...
- CentOS7设置开机自启动方式
方式一: # 在/etc/rc.d/rc.local文件中追加启动命令,该文件追加后,会随着机器自动后,自动运行文件中的命令 # vim /etc/rc.d/rc.local # 权限问题:在cent ...
- CentOS7设置开机自启动命令大全
任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service 使某服务不自 ...
- 【linux基础】如何开机自启动某个程序-linux工具-ubuntu
前言 实际使用中应用程序或者服务需要开机自启动,而不是人为手动开启运行,那么,该如何做呢,本文对此进行介绍. 操作过程 1. 确定系统的桌面环境: 具体可参考here; 2. 如何自启动: 博主ubu ...
- linux 精简开机自启动
centos7 精简开机自启动 ntsysv rsyslog crond sshd network
- 红帽linux系统开机自启动脚本。
其实很多东西在最后完成以后会觉得也就那样,有意思的是探究的过程. 前段时间老板要求把一个程序做成linux系统开机自启动脚本的模式. 首先你需要写一个脚本. 我这边建立了一个.sh的脚本,就是用脚本启 ...
- java程序,在windows下设置为开机自启动
1.制作可运行jar包 2.设置开机自动,后台运行,确保不关 一下这几个方法是我试过的,由于有不同的问题,以后慢慢总结 (1).制作bat文件,放在"启动"里面 (2).设置组策略 ...
- Android开机自启动程序
背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为 android.intent.action.BOOT_COMPLETED. ...
- CentOS7中设置Tomcat8开机自启动
CentOS7中设置Tomcat8开机自启动 本文介绍了在centos7中配置tomcat的开机自启动的一些操作步骤,仅供参考. 环境是CentOS 7 ,jdk版本是1.8.0_191,tomcat ...
随机推荐
- vue---day02
1. 全局组件的注册 - 创建根实例的时候,data可以是object,也可以是函数 - 创建组件的时候,data必须是函数 1.1 创建 Vue.component('global-componen ...
- javaWeb总结
url传值时:如out.println("<td><a href = 'delete.jsp?user=" + user + "'>删除</ ...
- UVA10474 Where is the Marble?【排序】
参考:https://blog.csdn.net/q547550831/article/details/51326321 #include <iostream> #include < ...
- BZ 600题祭
不知不觉就600题了呢. 明天就要省选了.不要让这个数字定格在这里吧!
- 根据STATUS信息对MySQL进行优化
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一.慢查询mysql> sh ...
- Android开发免费类库和工具集合
用于Android开发的免费类库和工具集合,按目录分类. Action Bars ActionBarSherlock Extended ActionBar FadingActionBar GlassA ...
- MySQL高可用之PXC安装部署(续)
Preface Yesterday I implemented a three-nodes PXC,but there were some errors when proceeding ...
- Qt 在Label上面绘制罗盘
自己写的一个小小的电子罗盘的一个小程序,不过是项目的一部分,只可以贴绘制部分代码 效果如下图 首先开始自己写的时候,虽然知道Qt 的坐标系是从左上角开始的,所以,使用了算法,在绘制后,在移动回来,但是 ...
- 《python核心编程第二版》第3章习题
3-1. 标识符.为什么 Python 中不需要变量名和变量类型声明? 答: 对象的类型和内存占用都是运行时确定的. 尽管代码被编译成字节码,Python 仍然是一种解释 型语言. 在创建也就是赋值时 ...
- Linux-ls,cd,type命令
windows: dll:dynamic link library,动态链接库 Linux: .so:shared object,共享对象 操作系统: kernel:内核: 1.进程管理 2.内核管理 ...