linux中tomcat服務的啟動問題

2021-08-29 03:48:49 字數 1048 閱讀 8245

今日2023年10月16日,在專案過程中遇到了tomcat奔潰(崩潰?)的問題。最後經過亦師亦友的同行講解,我明白了原因。故來此與各位大佬交流分享一下。總結的話語有什麼問題,還望各位大佬批評指正,感激不盡。 

先下結論吧(後面再去分析結果):在web專案中,容器若是tomcat,禁止使用bin資料夾中的start.sh去啟動tomcat服務。

下面來分析一下原因:

1、在linux中,tomcat服務的所屬使用者是tomcat,然而tomcat使用者是無法登陸linux系統的,顧因此使用別的使用者登陸系統,例如使用root使用者登陸。

2、在linux中裝好tomcat服務之後,通常有兩種啟動服務的方式

第一種是執行bin資料夾中的start.sh指令碼檔案

第二種是執行命令:systemctl start tomcat

一般來說,禁止使用指令碼檔案啟動tomcat服務。原因如下:

1、tomcat是需要用tomcat使用者去執行的。並不是以root使用者去執行

2、在root許可權下去執行start.sh指令碼,這樣tomcat就是以root使用者去執行

3、而使用命令:systemctl start tomcat,這樣無論以何種使用者登陸,tomcat服務都是以tomcat使用者去執行

4、最後說一下為什麼11號啟動的時候是可以的,但是16號不行了。

11號的時候:路人甲以root許可權登陸,並以指令碼方法啟動了tomcat,此時tomcat的執行使用者是root,所以後面上傳的war包所屬使用者都是root。在root使用者執行的tomcat服務下去執行root使用者的專案目錄,是不會出錯的。

16號的時候:路人乙以root許可權登陸,用命令:systemctl restart tomcat重啟tomcat服務,此時tomcat服務的執行使用者變成了tomcat,然而之前的專案檔案的所屬使用者仍是:root。用tomcat使用者去執行root許可權的檔案,因此報錯。

此致  敬禮

demons丶丶

2018.11.8補充:

在linux中安裝tomcat時,新建tomcat使用者組,在tomcat使用者組中新建tomcat使用者,用此使用者去跑tomcat服務。

Linux啟動Tomcat服務

昨天機器重啟之後發現系統頁面無法啟動,發現原因是tomcat無法啟動,之後進入tomcat的安裝目錄使用bin startup.sh啟動tomcat,隨後發現頁面還是無法訪問。後來發現是沒有啟動mysql 解決方案 啟動mysql etc rc.d init.d service mysqld sta...

tomcat中配置https服務

在conf server.xml中,配置乙個 其中,scheme https 宣告此服務是https服務,keystorefile conf keystore 指定了keystore檔案的路徑,keystorepass指定了密碼。將準備好的keystore檔案放至指定的目錄下。啟動tomcat,就可...

Linux中tomcat伺服器安裝配置

mkdir soft yum y install lrzsz 解壓tomcat tar zxvf apache tomcat 7.0.92.tar.gz 將tar.gz的包移動到 software目錄 mv apache tomcat 7.0.92.tar.gz software 檢視進入目錄 cd...