在CentOS7上使用systemctl配置tomcat

最近買了一臺阿里雲,如今阿里雲CentOS都已經支持7了(前面都是使用CentOS6),索性直接使用CentOS7,7上面目前最大區別就是service變成了如今的systemctl,簡單的查了一下並結合使用,發現systemctl功能上等同於6上面的service+chkconfig,也就是說配置service與設置開機啓動都是使用systemctl。html

開始配置tomcatjava

1.環境準備,安裝javalinux

在生產環境上,我通常使用oracle java,不使用openjdk,因此先卸載系統自帶的openjdkweb

yum remove java

下載oracle java Linux rpm安裝包(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlapache

安裝bootstrap

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

java默認的安裝目錄在/usr/java/jdk1.8.0_92(根據具體的版本目錄名不一樣)vim

2.下載tomcattomcat

我選擇使用清華大學源,速度十分快,這個源還有其餘資源,下載軟件能夠在這裏找oracle

將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 CLASS_PATH=.:$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
# 輸入如下內容
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target
 
[Service]
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 

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

8.上面tomcat8.service文件建立完畢後就能夠經過systemctl來管理tomcat了

設置tomcat開機啓動

systemctl enable tomcat8

啓動tomcat

systemctl start tomcat8
# 查看tomcat進程
[root@cc ~]# ps aux | grep tomcat
tomcat   16150  0.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,歡迎交流學習

相關文章
相關標籤/搜索