1. 程式人生 > >使用daemon方式啟動tomcat(CentOS7)

使用daemon方式啟動tomcat(CentOS7)

chkconfig mct led tar.gz cat don con sys proto

在生產中,tomcat應該以daemon的模式運行,而且如果需要以普通用戶的身份啟動tomcat,那麽就不能使用1024以下的端口,這是Liunx系統的限制,只有root用戶才能使用小於1024的端口。那麽該如何將tomcat配置成服務呢?接下來,我們就來聊一聊jsvc這個東東。
jsvc是什麽,簡單的講,它就是一個C程序,是tomcat發行版中自帶的一套代碼,路徑在tomcat/bin/commons-daemon-native.tar.gz中。有了jsvc,我們就可以簡單的定制tomcat的啟動腳本使tomcat成為服務,指定tomcat運行時的用戶和組,還可以定制一些jvm的參數等等,廢話不多說,下面開始實戰配置:

1,系統環境說明:

系統版本:

[root@tomcat ~]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 

內核版本:

[root@tomcat ~]# uname -r
3.10.0-514.el7.x86_64

jdk版本:

java version "1.8.0_144"

tomcat版本:

apache-tomcat-8.5.20

2,JDK安裝:

下載JDK,為了和線上環境保持一致,這裏使用jdk1.8版本的。下載鏈接:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

我這裏提前下好了jdk,所以就直接安裝了。

[root@tomcat ~]# cd soft/
[root@tomcat soft]# tar xf jdk-8u144-linux-x64.tar.gz -C /opt/                                #解壓到opt目錄下
[root@tomcat soft]# cd /opt/
[root@tomcat opt]# ln -sv jdk1.8.0_144/ jdk                                                           #創建軟鏈接
‘jdk’ -> ‘jdk1.8.0_144/’

配置環境變量,編輯/etc/profile.d/java.sh,添加如下內容:

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH

運行生效:

[root@tomcat ~]# . /etc/profile.d/java.sh

查看版本信息:

[root@tomcat ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

出現版本信息表明,jdk安裝完成。

3,安裝tomcat:

tomcat下載地址:https://tomcat.apache.org/download-80.cgi 這裏用tomcat8版本。
添加www用戶:

[root@tomcat soft]# useradd www

解壓tomcat到/opt/下:

[root@tomcat soft]# tar xf apache-tomcat-8.5.20.tar.gz -C /opt/
[root@tomcat opt]# ln -sv apache-tomcat-8.5.20/ tomcat
‘tomcat’ -> ‘apache-tomcat-8.5.20/’                       #創建軟鏈接
[root@tomcat opt]# chown -R www.www tomcat/       #更改權限

配置環境變量,編輯/etc/profile.d/catalina.sh,添加如下內容:

export CATALINA_HOME=/opt/tomcat
export CATALINA_BASE=/opt/tomcat

運行生效:

[root@tomcat ~]# . /etc/profile.d/catalina.sh

4,安裝jsvc:

進入tomcat下面的bin目錄:

[root@tomcat ~]# cd /opt/tomcat/bin/
[root@tomcat bin]# tar xf commons-daemon-native.tar.gz
[root@tomcat bin]# cd commons-daemon-1.0.15-native-src/unix/
[root@tomcat unix]# ./configure --with-java=$JAVA_HOME
... 
*** All done ***
Now you can issue "make"                      
[root@tomcat unix]# make

編譯完成後,會在當前文件夾生成一個jsvc的文件,將它拷貝到/opt/tomcat/bin/下:

[root@tomcat unix]# cp jsvc /opt/tomcat/bin/

bin目錄下有個daemon.sh,這個是tomcat服務的啟動腳本,將它復制到/etc/init.d/下:

[root@tomcat bin]# cp daemon.sh /etc/init.d/tomcat

然後我們需要對啟動腳本做下改動:

# chkconfig: 2345 25 85                                              #添加到頭部,這是服務配置信息
# description: Tomcat daemon project

JAVA_HOME=/opt/jdk                                                 #配置環境變量
CATALINA_HOME=/opt/tomcat
...
test ".$TOMCAT_USER" = . && TOMCAT_USER=www            #將tomcat用戶改為www

添加服務:

[root@tomcat ~]# chkconfig --add tomcat
[root@tomcat ~]# chkconfig --list tomcat

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use ‘systemctl list-unit-files‘.
      To see services enabled on particular target use
      ‘systemctl list-dependencies [target]‘.

tomcat          0:off   1:off   2:on    3:on    4:on    5:on    6:off

啟動服務:

[root@tomcat ~]# service tomcat start
[root@tomcat ~]# netstat -tnlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      2626/jsvc.exec      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      862/sshd            
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      2626/jsvc.exec      

打開瀏覽器就可以訪問了。至此,tomcat就可以以daemon的方式運行了。

使用daemon方式啟動tomcat(CentOS7)