Linux开机自启动tomcat
Linux开机自启动tomcat
操作环境
服务器centos7.3
配置开机自启动tomcat
众所周知,在Linux中设置开机自启动的服务,需要在/etc/rcX.d
下挂载。除此之外还需要在/etc/init.d
下些启动脚本。其实很简单,先export
出所需要的环境变量,例如JAVA_HOME,JRE_HOME, CATALINA_HOME, CATALINA_BASE
什么的,然后再直接调用$CATALINA_HOME/bin/startup.sh
就能成功启动。
1,我们在/etc/init.d下新建一个文件tomcat(需要在root权限下操作)
1 | vim /etc/init.d/tomcat |
写下如下代码,tomcat自启动脚本:
1 | !/bin/sh |
这里特别提醒注意这一句ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
,熟悉Linux命令的人应该都清楚这句话的意义,这里就简单说下前半部分,查询root
用户下tomcat
的进程PID
,个人根据实际情况修改。
2,保存退出之后,给其增加可执行权限
1 | chmod +x /etc/init.d/tomcat |
3,设定开机启动服务
1 | chkconfig tomcat on |
4,验证
执行reboot
重启之后就会发现,Tomcat已经成功运行
1 | reboot |
添加这个脚本之后我们启动,停止,重启tomcat可以直接用命令
1 | service tomcat start |
问题1
1,CentOS7 下安装 Tomcat8 并且解决启动速度巨慢的问题
解决:
增大/dev/random的熵池,问题的原因是由于熵池不够大,所以增大它是最彻底的方法。我们可以通过软件的方法实现,下面是软件的安装和配置流程。
1 | 安装熵服务 |
如果你的 CPU 不支持 DRNG 特性或者像我一样使用虚拟机,可以使用/dev/unrandom来模拟。
1 | cp /usr/lib/systemd/system/rngd.service /etc/systemd/system vim /etc/systemd/system/rngd.service |
重新载入服务
1 | systemctl daemon-reload |
经过上面的修改,我们再观察 /proc/sys/kernel/random/entropy_avail 基本上在 3000 左右。这个时候重新启动 Tomcat,发现启动时间正常。
问题2:
为应用程序创建初始化脚本后,运行服务会导致以下错误:
env: /etc/init.d/your_init_script: No such file or directory
诊断
环境
- unix系统上可能会出现此问题
诊断步骤
- 运行以下命令:
- 检查输出,
原因
- 回车符已插入您的初始化脚本中。
解析
-
从初始化脚本中删除回车符。
-
sed -i -e ‘s/\r//g’ /etc/init.d/your_init_script
-
这将删除回车符,之后您可以成功启动服务