tomcat的systemctl启动脚本
最近在做Tomcat的实验,顺便研究了一下tomcat的启动脚本发现一个问题,然后经过多方查阅其他大神的资料,终于解决,现在跟大家分享。
tomcat的启动脚本跟别的脚本有稍微区别的原因是他需要识别JAVA_HOME环境,你仅仅是写到/etc/profile文件中是不行的。
在启动的时候会报错,我们通过查询错误信息,显示如下信息内容
startup.sh[14716]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
明明定义了JAVA_HOME为什么显示没有JAVA_HOME呢?
因为tomcat自带的startup.sh脚本。调用的是catalina.sh脚本,然后catalina.sh脚本识别的是catalina.bat中的JAVA_HOME环境
所以我们可以直接在catalina.bat中添加JAVA_HOME,但是我觉得都已经写了启动脚本,还需要去别的地方改,这样的话,反而没有service的脚本方便,
然后查了资料发现。可以在systemctl脚奔模块中添加一个Environment来导入JAVA_HOME,下面将我写的tomcat的启动脚本分享给大家。
vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=network.target [Service]
Type=forking Environment="JAVA_HOME=/usr/local/java" //tomcat启用时需要识别JAVA_HOME ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh [Install]
WantedBy=multi-user.target chmod 600 /usr/lib/systemd/system/tomcat.service
systemctl daemon-reload
systemctl start tomcat
此时tomcat即可正常启动
附加说明一点
因为shutdown.sh脚本通过tomcat的8005号端口关闭tomcat,如果你的熵池比较小的话,那么你在启动tomcat的时候,可能需要一段时间才可以
完全启用到,可以通过查询端口,来查看tomcat有没有完全启动
ss -antp | grep java
增加熵池大小的话,可以参考我的另外一篇文章,tomcat启用是为什么8005端口没有被占用
最后,在赠送一个tomcat的service的启用脚本
vim /etc/init.d/tomcat
#!/bin/bash
#chkconfig: 2345 96 14
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
exec $CATALINA_HOME/bin/catalina.sh $*
[root@tomcat ~]# chmod +x /etc/init.d/tomcat
[root@tomcat ~]# chkconfig --add tomcat
[root@tomcat ~]# chkconfig tomcat on
如果有什么错误,或者问题,欢迎评论讨论
tomcat的systemctl启动脚本的更多相关文章
- 短网址资料-nginx非root用户启动-systemctl启动脚本-分割root权限
https://www.cnblogs.com/aspnethot/articles/3492191.htmlhttps://www.cnblogs.com/aspnethot/articles/34 ...
- tomcat停止和启动脚本
日常重启tomcat比较麻烦,所以写了2个脚本,在脚本后输入tomcat名称即可 启动或重启tomcat #!/bin/sh TOMCAT_HOME=/usr/java/$1 if [ ! -n &q ...
- linux设置systemctl 启动脚本
centos 7 服务的systemctl 脚本一般存在:/usr/lib/systemd目录.目录下又分为system,和user之分, /usr/lib/systemd/system #系统服务, ...
- CentOS7下利用init.d启动脚本实现tomcat开机自启动
在之前的博文中已经对CentOS7下通过tomcat进行WEB系统的发布进行了介绍,今天将利用init.d启动脚本,将服务脚本加入到开机启动服务队列,实现tomcat服务的开机启动. 1. 环境准备 ...
- Tomcat启动脚本
记录一个比较好的tomcat启动脚本,截取<OneinStack>,修改如下两个参数即可用. 使用之前修改下面2个参数: #Location of JAVA_HOME (bin files ...
- [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat
概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...
- [Tomcat 源码分析系列] (一) : Tomcat 启动脚本-startup.bat
概述 我们通常使用 Tomcat 中的 startup.bat 来启动 Tomcat. 但是这其中干了一些什么事呢? 大家都知道一个 Java 程序需要启动的话, 肯定需要 main 方法, 那么这个 ...
- systemctl启动tomcat后,jps看不到进程
centos7 写了tomcat的启动脚本,脚本从网上copy的. [Unit]Description=tomcat-1After=syslog.target network.target remot ...
- Jenkins tomcat打包启动脚本,待完善
shell脚本 #!/bin/bashJENKINS_HOME=/usr/local/jenkinsTOMCAT_HOME=/usr/local/jenkins/tomcat-testSHUTDOWN ...
随机推荐
- HttpRequest获得服务端和客户端的详细信息
参考文档:http://blog.csdn.net/u012104100/article/details/43051301 http://blog.csdn.net/u011162260/articl ...
- PHP(一般标签介绍,标签特性,实体名称,绝对路径与相对路径)
h1:为标题 h1~h6 标题会逐渐变小 需更换标签里面的数字 如: <h1>这是标题123</h1>---标题 <h2>这是标题123</h2>-- ...
- python全栈开发 * 29知识点汇总 * 180712
29 正则表达式 re模块一.正则表达式官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”, 这个“规则字符串”用来表达对字 ...
- vivado/FPGA 使用小纪
1.使用FPGA做为外部控制器的总线译码时,将总线时钟接在全局时钟脚上(MRCC),就算接在了局部时钟(SRCC)上,也要通过BUFG转为全局时钟走线,否则会因为local clk到各部分的时延较大引 ...
- 单片机小白应该如何学习stm32的一些实践心得!
嵌入式搬砖道路上的大三狗一枚,撑死算个初学者吧.才学有限,下面仅仅是本人对STM32学习的一点心得与建议,希望对题主有帮助吧. 心得:本人当初学习STM32的时候有一些跟风的因素,自以为学的芯片越多就 ...
- 洛谷P3455 ZAP-Queries [POI2007] 莫比乌斯反演+数论分块
正解:莫比乌斯反演 解题报告: 传送门! 首先这题刚看到就很,莫比乌斯反演嘛,和我前面写了题解的那个一模一样的,所以这儿就不讲这前边的做法辣QAQ 但是这样儿还有个问题,就现在已知我每次都是要O(n) ...
- input type = file 上传图片转为base64
项目背景是做图片识别,接口需要上传图片格式为base64格式的,react项目的相关代码: let reader = new FileReader();reader.readAsDataURL(e.t ...
- CookieUitl
import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.h ...
- Python openpyxl、pandas操作Excel方法简介与具体实例
本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...
- 使用Sqlserver事务发布实现数据同步(zhuanqian)
事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的.这里以sqlserver2008的事务发布功能为例,对发布 ...