1. 程式人生 > >Centos7.3_x86_64通過systemctl控制tomcat8.0.46啟動和停止

Centos7.3_x86_64通過systemctl控制tomcat8.0.46啟動和停止

oca apache port 服務的啟動 編輯 根目錄 add load rip

Centos7.3_x86_64通過systemctl控制tomcat8.0.46啟動和停止


之前在centos 6上通過腳本控制tomcat 啟動和停止的腳本,雖然在centos 7也可以使用,但centos 7的守護進程已經由centos6的init更換為systemctl,因此可以通過systemctl控制tomcat的啟動和停止,另外經測試通過systemctl啟動和關閉tomcat非常成功,尤其是關閉tomcat,之前時候catalina.sh腳本關閉tomcat,會有無法關閉的情況,而使用了systemctl後可以確保百分百關閉成功,具體過程如下:

配置java環境變量
# vim 
/etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_111 export PATH=$JAVA_HOME/bin:$PATH 1.編輯/etc/sudoers,目的為可以讓普通用於遠程沒有tty的情況下重啟tomcat: #Defaults requiretty #不需要tty tomcat ALL=(ALL) NOPASSWD: /usr/bin/systemctl #tomcat用戶使用sudo 執行systemctl命令不需要輸入密碼 2.添加tomcat用戶: # useradd tomcat -u 1000 #此用戶用於後期啟動tomcat,應用不要用root身份啟動
3.創建tomcat軟連接: [root@node1 local]# ln -sv /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat ‘/usr/local/tomcat’ -> ‘/usr/local/apache-tomcat-8.0.464.編輯tomcat啟動腳本tomcat.service文件 註意:文件中目錄路徑必須是絕對路徑 # vim /usr/lib/systemd/system/tomcat.service [Unit] Description=Tomcat8 After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type
=forking PIDFile=/usr/local/tomcat/tomcat.pid ExecStart=/usr/local/tomcat/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 [unit]配置了服務的描述,規定了在network啟動之後執行, [service]配置服務的pid,服務的啟動,停止,重啟 [install]配置了使用用戶 5.編輯變量腳本/usr/local/tomcat/bin/setenv.sh # vim /usr/local/tomcat/bin/setenv.sh export CATALINA_HOME=/usr/local/tomcat export CATALINA_BASE=/usr/local/tomcat #設置Tomcat的PID文件 CATALINA_PID="$CATALINA_BASE/tomcat.pid" #添加JVM選項 JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m" # chmod a+x /usr/local/tomcat/bin/setenv.sh 6.測試Tomcat.service服務 啟動tomcat: # su - tomcat # sudo systemctl start tomcat [tomcat@node1 ~]$ systemctl status tomcat ● tomcat.service - Tomcat8 Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2018-02-25 14:59:06 CST; 1min 52s ago Process: 14030 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS) Process: 14041 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 14055 (java) CGroup: /system.slice/tomcat.service └─14055 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogMan.. 因為配置pid,在啟動的時候會再tomcat根目錄生成tomcat.pid文件,停止之後刪除。 同時tomcat在啟動時候,執行start不會啟動兩個tomcat,保證始終只有一個tomcat服務在運行。 多個tomcat可以配置在多個目錄下,互不影響。

Centos7.3_x86_64通過systemctl控制tomcat8.0.46啟動和停止