1.win10环境下
(1)注册tomact服务,在cmd中运行如下语句
语句1:cd F:\项目后台\apache-tomcat-8.5.30\bin
语句2:F:\项目后台\apache-tomcat-8.5.30\bin>service.bat install bjapptomact
注:服务名称为 bjapptomact
但在系统服务显示为 Apache Tomcat 8.5 bjapptomact,如下
打开属性详情如下:
原因:打开 tomcat下的service.bat文件可看到,如下:
服务显示名称。
服务描述可修改。
(2)移除tomact服务,在cmd中运行如下语句
F:\项目后台\apache-tomcat-8.5.30\bin>service.bat remove bjapptomact
注册时tomact需要存在service.bat文件,如果tomact是安装版本的不需要注册tomact服务。
2.CentOS 7环境下 将tomcat包配置成系统服务
(1)添加在/etc/init.d 自启服务目录下(第一种方法)
1-文件准备
将/usr/local/tomcat/apache-tomcat-8.5.47-init.d/bin/catalina.sh 文件拷贝到 /etc/init.d/ ,并重命名为tomcatinit
执行 cp catalina.sh /etc/init.d/tomcatinit
2-编辑文件
执行 vim tomcatinit
3-添加tomcatinit为系统服务
未添加tomcat为系统服务之前,查看系统服务chkconfig --list,发现并没有tomcat服务,如下图
执行 chkconfig --add tomcatinit 将此设置成系统服务
执行命令chkconfig --list,如下图
4-启动和关闭服务
启动服务:service tomcatinit start
关闭服务:service tomcatinit stop
5-设置tomcat服务随系统启动而自启动(设置成系统自启动服务)
直接在/etc/rc.local文件最后添加语句/usr/local/tomcat/apache-tomcat-8.5.47-init.d/bin/startup.sh,重启系统,运行ps -ef|grep java,出现如下信息,则说明tomcat服务自启动了!
关闭tomcat服务,运行ps -ef|grep java
(2)CentOS7 systemctl管理服务(第二种方法)
CentOS7开始,从/etc/init.d脚本改为了systemctl管理服务。
本文记录了把tomcat8加入systemd管理的步骤。
1-首先,需要为tomcat配置pid
编辑 catalina.sh脚本文件
# vim catalina.sh
添加 CATALINA_PID="$CATALINA_BASE/tomcatsystemctl.pid",如下图
2.创建tomcatsystemctl.service文件
在 /usr/lib/systemd/system 目录下创建 tomcatsystemctl.service
文件内容:
[Unit]
Description=tomcatsystemctl
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_144"
Environment='CATALINA_PID=/usr/local/tomcat/apache-tomcat-8.5.47-systemctl/bin/tomcatsystemctl.pid'
Environment='CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.47-systemctl/'
Environment='CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8.5.47-systemctl/'
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'WorkingDirectory=/usr/local/tomcat/apache-tomcat-8.5.47-systemctl/
ExecStart=/usr/local/tomcat/apache-tomcat-8.5.47-systemctl/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_144" 这里要配置环境变量,在/etc/profile中的配置在系统服务中不生效。
3-设置为开机启动
修改tomcatsystemctl.service文件后需要执行下面命令使其生效:
systemctl daemon-reload启动tomcat服务 : systemctl start tomcatsystemctl.service
设置开机自启动 : systemctl enable tomcatsystemctl.service
停止开机自启动 :systemctl disable tomcatsystemctl.service
查看服务当前状态 :systemctl status tomcatsystemctl.service
重新启动服务 : systemctl restart tomcatsystemctl.service
查看所有已启动的服务 :systemctl list-units --type=service
++++++++++++++未遇到此情况 +++++++++++++++++
这里有一个坑,就是centos7部署tomcat8,启动tomcat的时候会发现启动很慢,经过查询发现
主要原因:
就是通过随机数生成秘钥的时候卡住了,导致Tomcat启动慢或失败。
解决办法:
1)在Tomcat环境中解决 配置完成不生效;
可以通过配置JRE使用非阻塞的Entropy Source。
在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。
加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。
2)【已验证】在JVM环境中解决
打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/urandom
替换成
securerandom.source=file:/dev/./urandom