Linux系統的tomcat以daemon模式啟動並配置成服務202004


Jsvc 是專為 Java 應用程序開發的一個工具包,其目標是把 Java 應用程序的普通運行轉換為可以配置某個普通用戶以 Unix 守護進程的方式運行。這樣的話,可以很方便地啟動 / 停止應用程序,同時也可以支持開機自啟。開機自啟tomcat是比較重要的,可以保證由於意外而使機器需要重啟時不需要手動重啟tomcat就可以自動恢復服務。

簡而言之,在生產環境中我們需要將tomcat配置成以daemon守護進程來運行,主要有以下幾個原因:

  • 以daemon方式運行tomcat可使tomcat不受終端影響,不會因為退出終端而停止運行。
  • 可以讓tomcat以普通用戶身份運行。
  • 可以讓tomcat在系統啟動時自動運行,且實現非root用戶自運行。

1、在/usr/local/apache-tomcat-7.0.68/bin中有commons-daemon-native.tar.gz  壓縮包(每個版本都有對應的包在tomat包里)

2、解壓commons-daemon-native.tar.gz 

tar -zxvf commons-daemon-native.tar.gz

3、解壓完成,出現commons-daemon-1.0.15-native-src文件夾(目錄)

4、  執行configure 文件 

cd commons-daemon-1.0.15-native-src/unix 
./configure 

5、  編譯 (注意不是安裝,這里的是為了編譯出jsvc文件)

make

6、 編譯完成后出現jsvc文件夾,復制jsvc到/usr/local/apache-tomcat-7.0.68/bin目錄下面 

cp jsvc ../../ 

7、避免內存溢出,設置環境變量(添加setenv.sh,內容如下)該文件放在bin下邊,跟daemon.sh文件同級

#add tomcat pid

CATALINA_PID="$CATALINA_BASE/tomcat.pid"

#add java opts

JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx2048M -XX:MaxNewSize=256m"

8、/usr/local/apache-tomcat-7.0.68/bin/daemon.sh start啟動tomcat

 

9、配置tomcat為系統服務,並實現自動啟動,首先修改/usr/local/apache-tomcat-7.0.68/bin目錄下daemon.sh腳本,在首行 #!/bin/sh 的下一行添加服務配置信息

# chkconfig: 2345 20 80
# description: Startup script for the Tomcat 7.0.65 Server

10、找到 test ".$TOMCAT_USER" = . && TOMCAT_USER= 這一行,在前面加上jdk和tomcat環境配置

JAVA_HOME=/usr/softwares/jdk1.6.0_45

CATALINA_HOME=/usr/softwares/apache-tomcat-7.0.68

test ".$TOMCAT_USER" = . && TOMCAT_USER=wyan

參數說明
chkconfig 的2345表示默認服務級別,啟動順序為20,關閉順序為80

TOMCAT_USER=wyan,以wyan用戶來執行tomcat程序

11、把tomcat添加成系統服務進行啟動,在上面的配置正確后,要將daemon.sh添加成為服務就非常簡單了,只需要創建一個軟鏈到/etc/rc.d/init.d/目錄中即可(此步驟需要切換root,並且路徑要為全路徑)

ln -s  /usr/softwares/apache-tomcat-7.0.68/bin/daemon.sh /etc/rc.d/init.d/tomcat7

注意:切換到root用戶,然后修改連接歸屬用戶

chown -R wyan:wyan /etc/rc.d/init.d/tomcat7

然后可以切換到wyan用戶進行啟動停止測試

1.啟動:
service tomcat7 start
2.停止:
service tomcat7 stop

12、添加tomcat7服務自動啟動,並查看是否添加成功


chkconfig --add tomcat7  #添加tomcat服務
chkconfig --list tomcat7 #查看服務是否添加成功

然后重啟linux發現tomcat會自動啟動成功,注意守護進程是root的,工作進程是wyan的,這一點要知曉


 問題記錄:把日志清除后,重啟linux,tomcat隨系統自動啟動,發現日志中catalina-daemon.out日志文件所屬用戶是root,這個應該是正常的

如果要把這個文件所屬用戶改成wyan,操作方式是保留catalina-daemon.out文件,並且chown -R wyan:wyan catalina-daemon.out執行,重啟后文件所屬用戶仍然是wyan

但是如果刪除文件后,重啟,文件所屬用戶又會變成root,所以catalina-daemon.out文件盡量不要刪除;以后再找完美解決方案


 遇到問題描述:

在使用了daemon方式啟動后,發現應用打印出的日志為亂碼,之前的啟動方式不為亂碼,在網上找了很多方法,解決方式都是在daemon.sh文件中添加字符集,最后通過添加如下配置解決:

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"

添加配置最好添加在之前配置的代碼下邊挨着,方便維護;(問題解決原理就是這里配置的字符集與linux的字符集相同,查看linux字符集命令:echo $LANG)


免責聲明!

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



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