当前位置: 首页 > news >正文

[ 手记 ] 关于tomcat开机启动设置问题

 

  今天尝试将tomcat设置为开机启动,大家都知道只需要将启动脚本添加到/etc/rc.local下面开机就会自动执行。

/usr/local/tomcat8.0/bin/startup.sh >> /etc/rc.local

  重启机器,进行测试。结果未能如愿。这是为什么呢?开始排查。手动执行没有报错。于是开始查看日志。

[root@server2 ~]# tail /var/log/boot.log 
Starting nginx:                                            [  OK  ]
Starting crond:                                            [  OK  ]
Starting atd:                                              [  OK  ]
Starting certmonger:                                       [  OK  ]
Using CATALINA_BASE:   /usr/local/tomcat8.0
Using CATALINA_HOME:   /usr/local/tomcat8.0
Using CATALINA_TMPDIR: /usr/local/tomcat8.0/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat8.0/bin/bootstrap.jar:/usr/local/tomcat8.0/bin/tomcat-juli.jar
Tomcat started.

  发现日志里tomcat启动也没有异常,这下就非常疑惑了。

  回想下开机顺序: /sbin/init --> /etc/inittab --> /etc/rc.d/rc.sysinit --> /etc/rc.d/* --> /etc/rc.local --> login界面(username/passwd) --> /etc/profile.d/file --> /etc/profile

  rc.local 在 profile 前面执行,而jdk相关环境变量却在 profile 里。想要解决这个问题就需要在 tomcat脚本启动前就执行/etc/profile 才行。

[root@server2 ~]# vim /etc/rc.local 

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
source /etc/profile  # 执行下 /etc/profile
/usr/local/tomcat8.0/bin/startup.sh
echo "tomcat test."

  再次重启机器测试。

[root@server2 ~]# tail /var/log/boot.log 
Starting crond:                                            [  OK  ]
Starting atd:                                              [  OK  ]
Starting certmonger:                                       [  OK  ]
Using CATALINA_BASE:   /usr/local/tomcat8.0
Using CATALINA_HOME:   /usr/local/tomcat8.0
Using CATALINA_TMPDIR: /usr/local/tomcat8.0/temp
Using JRE_HOME:        /usr/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat8.0/bin/bootstrap.jar:/usr/local/tomcat8.0/bin/tomcat-juli.jar
Tomcat started.
tomcat test.

  日志OK。

[root@server2 ~]# netstat -ntplu | grep 8080
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      1590/java 

  服务也OK.

  这样的问题在以后可能也会遇到。可见,基础的原理和知识对解决问题有多重要。Linux开机执行文件的顺序一定要牢记。

 

转载于:https://www.cnblogs.com/hukey/p/5370176.html

相关文章:

  • 复制
  • 退役了哎
  • Java设计模式系列之迭代器模式
  • 【算法】RMQ LCA 讲课杂记
  • javascript高级程序设计
  • Objective—C中的排序及Compare陷阱
  • 《Struts2.x权威指南》学习笔记2
  • 【作业3】关于C语言的问卷调查
  • 控制台手动编译Qt5程序
  • 创建NetWorkDataset---Shapefile篇
  • 获取验证码按钮点击后,一分钟内不可继续点击
  • Delphi Canvas的FillRect(const Rect: TRect) 函数的作用
  • B+/-Tree原理及mysql的索引分析
  • 关闭Rootless机制
  • 图像缩放算法
  • Angular Elements 及其运作原理
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Java 内存分配及垃圾回收机制初探
  • Java到底能干嘛?
  • Laravel5.4 Queues队列学习
  • python_bomb----数据类型总结
  • python3 使用 asyncio 代替线程
  • Rancher如何对接Ceph-RBD块存储
  • Vue UI框架库开发介绍
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 从0到1:PostCSS 插件开发最佳实践
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 高度不固定时垂直居中
  • 原生js练习题---第五课
  • 自定义函数
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (3)选择元素——(17)练习(Exercises)
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (java)关于Thread的挂起和恢复
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (小白学Java)Java简介和基本配置
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .net 受管制代码
  • .net6Api后台+uniapp导出Excel
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • @GlobalLock注解作用与原理解析
  • []常用AT命令解释()
  • [<事务专题>]
  • [ACTF2020 新生赛]Upload 1
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [COI2007] Sabor
  • [HDU3710]Battle over Cities
  • [iOS]随机生成UUID通用唯一识别码
  • [Java、Android面试]_10_Java中==与equal()方法的区别?重写equal()方法?
  • [LeetCode] 197. 上升的温度