在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 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,歡迎交流學習

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM