sexevil 发表于 2017-12-26 09:36:30

在CentOS7上使用systemctl配置tomcat

  最近买了一台阿里云,现在阿里云CentOS都已经支持7了(前面都是使用CentOS6),索性直接使用CentOS7,7上面目前最大区别就是service变成了现在的systemctl,简单的查了一下并结合使用,发现systemctl功能上等同于6上面的service+chkconfig,也就是说配置service与设置开机启动都是使用systemctl。
  开始配置tomcat
  1.环境准备,安装java
  在生产环境上,我一般使用oracle java,不使用openjdk,所以先卸载系统自带的openjdk
  

yum remove java  

  下载oracle java Linux rpm安装包(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
  安装
  

rpm -ivh jdk-8u92-linux-x64.rpm  

  java默认的安装目录在/usr/java/jdk1.8.0_92(根据具体的版本目录名不同)
  2.下载tomcat
  我选择使用清华大学源,速度十分快,这个源还有其他资源,下载软件可以在这里找
  将tomcat下载到/opt目录下,并解压
  

# 下载  

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.36/bin/apache-tomcat-8.0.36.tar.gz -P /opt  
# cd到tomcat包的目录
  
cd /opt
  
# 解压tomcat包
  
tar -zxf apache-tomcat-8.0.36.tar.gz
  
# 创建符号链接tomcat8,因为解压出来的包名比较长,为了方便
  
ln -s apache-tomcat-8.0.36 tomcat8
  
# 可以选择删除tomcat包
  
rm -rf apache-tomcat-8.0.36.tar.gz
  

  3.设置环境变量
  

# cd 到 /et/profile.d目录  
cd
/etc/profile.d  
# 创建tomcat8.
sh  
vim tomcat8.
sh  
# 输入以下内容
  

  
# java tomcat
env  
export JAVA_HOME
=/usr/java/jdk1.8.0_92
  
export>=.:$JAVA_HOME/lib  
export CATALINA_HOME
=/opt/tomcat8  
export CATALINA_BASE
=/opt/tomcat8  
export PATH
=$PATH:$JAVA_HOME/bin:$CATLINA_HOME:/bin  # 保存tomcat8.sh文件,使用source使环境变量立即生效
  source /etc/profile
  

  4.简单介绍systemctl命令的使用
  

systemctl list-unit-files --type service #查看全部服务命令  
systemctl status name.service #查看服务命令
  
systemctl start name.service #启动服务
  
systemctl stop name.service #停止服务
  
systemctl restart name.service #重启服务
  
systemctl enable name.service #增加开机启动
  
systemctl disable name.service #删除开机启动
  

  5.配置tomcat的启动参数
  

# 编辑/opt/tomcat8/bin/setenv.sh,没有的话就新建  
vim
/opt/tomcat8/bin/setenv.sh  
# 输入以下配置选项(tomcat有很多配置选项)
  
# 设置tomcat pid
  
CATALINA_PID
="$CATALINA_BASE/tomcat.pid"  
# 设置java参数,提高性能
  
JAVA_OPTS
="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"  
# 保存文件
  
# 修改文件权限变为可执行
  

chmod a+x /opt/tomcat8/bin/setenv.sh  

  6.创建tomcat账户来启动tomcat,并修改tomcat文件的属性
  

getent group tomcat || groupadd -r tomcat  

getent passwd tomcat || useradd -r -d /opt -s /bin/nologin -g tomcat tomcat  

chown -R tomcat:tomcat /opt/apache-tomcat-8.0.36  

  7.配置systemctl来管理tomcat
  

# 在/usr/lib/systemd/system目录下新建tomcat8.service文件  
cd
/usr/lib/systemd/system  
# 创建tomcat8.service文件
  
vim tomcat8.service
  
# 输入以下内容
  

  
Description
=Apache Tomcat 8  
After
=syslog.target network.target  

  
Type
=forking  
PIDFile
=/opt/tomcat8/tomcat.pid  
ExecStart
=/opt/tomcat8/bin/startup.sh  
ExecReload
=/bin/kill -s HUP $MAINPID  
ExecStop
=/bin/kill -s QUIT $MAINPID  
PrivateTmp
=true  
User
=tomcat  
Group
=tomcat  

  

  
WantedBy
=multi-user.target  
# 保存wq!
  

  8.上面tomcat8.service文件创建完毕后就可以通过systemctl来管理tomcat了
  设置tomcat开机启动
  

systemctl enable tomcat8  

  启动tomcat
  

systemctl start tomcat8  
# 查看tomcat进程
  
[iyunv@cc
~]# ps aux | grep tomcat  
tomcat
161500.1 27.0 2626292 275420 ?      Sl   14:34   0:36 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512m -Xms256M -Xmx512M -XX:MaxNewSize=128m -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat8 -Dcatalina.home=/opt/tomcat8 -Djava.io.tmpdir=/opt/tomcat8/temp org.apache.catalina.startup.Bootstrap start  

  9.配置完毕
  tomcat启动时会在tomcat的根目录/opt/tomcat8下生成pid文件tomcat.pid,停止后会删除,用systemctl管理tomcat不会出现同时启动多个tomcat,这样可以保证始终只有一个tomcat在运行
  文中有不足之处,请直接指出,QQ:1485619676,欢迎交流学习

mayiwen123456 发表于 2017-12-26 10:58:59

本帖最后由 mayiwen123456 于 2017-12-26 11:14 编辑

楼主这个实验啥时候做的,还是复制的别人的? jdk-8u92-linux-x64.rpm 这个版本还在吗。tomcat-8/v8.0.36 也更新过了

mayiwen123456 发表于 2017-12-26 12:06:33

# java tomcat
env
export JAVA_HOME
=/usr/java/jdk1.8.0_151

export>=.:$JAVA_HOME/lib
export CATALINA_HOME
=/opt/tomcat8
export CATALINA_BASE
=/opt/tomcat8
export PATH
=$PATH:$JAVA_HOME/bin:$CATLINA_HOME:/bin

报错
-bash: =/usr/java/jdk1.8.0_151: No such file or directory
-bash: =.:/lib: No such file or directory
-bash: =/opt/tomcat8: No such file or directory
-bash: =/opt/tomcat8: No such file or directory
-bash: =$PATH:$JAVA_HOME/bin:$CATLINA_HOME:/bin: No such file or directory
页: [1]
查看完整版本: 在CentOS7上使用systemctl配置tomcat