tomcat服務的啟動、關閉與錯誤跟蹤,使用xshell 遠程連接到伺服器以後,有以下幾種啟動關閉tomcat服務: 切換到tomcat主目錄下的bin目錄
1,啟動tomcat服務
方式一:啟動 ./startup.sh
方式二:服務啟動 nohup ./startup.sh &
方式三:控制台動態輸出方式啟動 ./catalina.sh run 動態地顯示tomcat後台的控制台輸出信息,Ctrl+C後退出並關閉服務。 《Linux就該這么學》
解釋:
通過方式一、方式三啟動的tomcat有個弊端,當客戶端連接斷開的時候,tomcat服務也會立即停止,
通過方式二可以作為linux服務一直運行
通過方式一、方式二方式啟動的tomcat,其日誌會寫到相應的日誌文件中,而不能動態地查看tomcat控制台的輸出信息與錯誤情況,
通過方式三可以以控制台模式啟動tomcat服務, 直接看到程序運行時後台的控制台輸出信息,不必每次都要很麻煩的打開catalina.out日誌文件進行查看,這樣便於跟蹤查閱後台輸出信息。tomcat控制台信息包括log4j和System.out.println()等輸出的信息。
B. linux系統設置tomcat自啟動
linux系統設置tomcat自啟動
需要將tomcat加入自啟動隊列中,則需要進行如下的操作:
以root用戶登錄系統:
cd /etc/rc.d/init.d/
vi tomcat
文件內容參考如下:
#!/bin/sh
#
# tomcat: Start/Stop/Restart tomcat
#
# chkconfig: 2345 80 20
# description: Tomcat is a java Servlet Container
#
#
# match these values to your environment:
export CATALINA_BASE=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_TMPDIR=/usr/local/tomcat/temp
export JRE_HOME=/usr/java/jdk15
# Source function library.
. /etc/rc.d/init.d/functions
TOMCAT=/usr/local/tomcat
start() {
echo -n ___FCKpd___0"Starting Tomcat: "
$TOMCAT/bin/catalina.sh start
}
stop() {
echo -n ___FCKpd___0"Stopping Tomcat: "
$TOMCAT/bin/catalina.sh stop
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
;;
status)
;;
restart)
stop
start
;;
*)
echo ___FCKpd___0"Usage: $0 {startstoprestart}"
;;
esac
exit $RETVAL
把 tomcat 修改為可運行的文件,命令參考如下:
chmod a+x tomcat
使用chkconfig命令把 tomcat 命令加入到系統啟動隊列中:
chkconfig --add tomcat
查看apachectl的狀態:
chkconfig --list tomcat
C. linux查看tomcat埠命令
linux下tomcat服務是經常進行操作的一個服務,那我們要怎麼查看tomcat埠信息呢?下面由我為大家整理了linux查看tomcat埠命令的相關知識,希望對大家有幫助!
linux查看tomcat埠命令詳解
1.linux查看Tomcat埠命令
執行命令$netstat -nat能列出tomcat占據的埠,8080及其它類似的埠是需要注意的。這命令也需要Tomcat啟動了。
netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:60000 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5801 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:523 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:877 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:51343 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:785 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:946 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5811 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5911 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 9.47.228.61:443 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6011 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN
tcp 0 0 9.47.228.61:60000 9.47.228.61:33664 ESTABLISHED
tcp 0 0 9.47.228.61:60000 9.47.228.61:53605 ESTABLISHED
tcp 0 0 9.47.228.61:60000 9.47.228.61:51221 ESTABLISHED
補充:linux查看tomcat進程命令
2.查看Tomcat進程
執行命令$ps -ef|grep tomcat 你就能找出tomcat占據的進程號,當然這要求tomcat啟動了。
# ps -ef | grep tomcat
root 4637 1 0 Aug08 ? 00:02:01 /opt/ibm/java-x86_64-60/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-6.0.32/conf/logging.properties -Dorg.apache.geronimo.jaxws.builder.useSimpleFinder=true -Xms1000m -Xmx1500m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/apache-tomcat-6.0.32/endorsed -classpath /opt/apache-tomcat-6.0.32/bin/bootstrap.jar -Dcatalina.base=/opt/apache-tomcat-6.0.32 -Dcatalina.home=/opt/apache-tomcat-6.0.32 -Djava.io.tmpdir=/opt/apache-tomcat-6.0.32/temp org.apache.catalina.startup.Bootstrap start
root 30152 27548 0 01:32 pts/0 00:00:00 grep tomcat
3.查看tomcat所在目錄
執行命令#find / -name tomcat,系統將列出所有tomcat為名的目錄,進入目錄後就能查清楚了。同理可以用find / -name startup.sh去找tomcat啟動文件。
# find / -name tomcat
/home/rttsInstall/temp/repository/org/apache/geronimo/ext/tomcat
/home/rttsInstall/temp/repository/org/apache/tomcat
/root/.ivy2/cache/tomcat
find: /proc/30540: No such file or directory
/ntcir/home/rttsInstall/packages/rtts/repository/org/apache/geronimo/ext/tomcat
/ntcir/home/rttsInstall/packages/rtts/repository/org/apache/tomcat
/ntcir/home/hwan/tomcat
D. linux環境下重啟Tomcat服務
廢話一波:俗話說,重啟能解決90%的bug,那麼我們怎麼樣在linux下重啟Tomcat呢?
首先,我們先看看該Tomcat是否在運行,輸入如下指令然後回車,
你可能會看到下面兩種情況的其中之一
情況一:
信息很多,不一一解釋,反正意思就是目前沒有Tomcat正在運行
情況二:
可以看出,當前有兩個Tomcat服務正在運行,綠色的框內的數字,表示運行該服務的進程id,黃色框的內容表示該Tomcat的的執行路徑,其他新增暫時不理。
如果當前Tomcat沒有在運行,則可以直接啟動,進入到Tomcat下的bin目錄,輸入 ./startup.sh
就可以啟動該Tomcat服務,啟動成功後重新輸入 ps -ef|grep java 就會出現類似圖二的畫面
如果當前的Tomcat正在運行,我們需要關掉該Tomcat服務後再執行 ./startup.sh ,即可重啟該Tomcat服務,關掉Tomcat的方式有兩種方法,
第一種:直接用Tomcat的腳本進行,進入到Tomcat的目錄下,輸入命令 ./shutdown.sh 執行Tomcat的關閉服務腳本,Tomcat即可正常關閉,但是Tomcat並不是完全關閉,一般使用第二種方式關閉
第二種:使用linux命令直接殺掉Tomcat的進程,輸入如下指令 kill -9 28003 這里的28003就是該Tomcat服務的進程,至於為什麼要在前面加上 -9 ,其實kill就是給某個進程id發送了一個信號。默認發送的信號是SIGTERM,而kill -9發送的信號是SIGKILL,即exit。exit信號不會被系統阻塞,所以kill -9能順利殺掉進程。當然你也可以使用kill發送其他信號給進程。
殺死Tomcat進程後,就可以按照前面啟動Tomcat的腳本進行啟動。
E. linux重啟tomcat服務命令
重啟tomcat一般要進去tomcat的安裝目錄,裡面有stop.sh和start.sh 腳本,直接執行即可。
具體操作可以參考如下,
首先,進入Tomcat下的bin目錄
cd /usr/local/tomcat/bin
使用Tomcat關閉命令
./shutdown.sh
查看Tomcat是否可以關閉
ps -ef|grep java
如果顯示以下相似信息,說明Tomcat還沒有關閉
root 12976 1 0 Sep01 ? 00:10:22 /usr/java/jdk1.7.0_80/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
*如果你想直接幹掉Tomcat,你可以使用kill命令,直接殺死Tomcat進程
kill -9 12976
然後繼續查看Tomcat是否關閉
ps -ef|grep java
如果出現以下信息,則表示Tomcat已經關閉
root 19955 19757 0 17:48 pts/0 00:00:00 grep java
啟動Tomcat
./startup.sh
查看tomcat日誌(記得切換路徑哦)tail -f catalina.out
F. linux重啟tomcat服務命令
linux重啟tomcat服務命令需要分五步進行,下面是具體介紹:G. 幾種常見的操作tomcat的linux命令
重啟tomcat
ps x 查看pid
kill -9 pid 殺死進程
/app/tomcat/bin/startup.sh 啟動tomcat
追蹤日誌
tail -f /app/tomcat/log/*.log
配置文件
vi /app/tomcat/webapp/root/WEB-INF/server.properties 查看伺服器配置
vi /app/tomcat/webapp/root/WEB-INF/web.xml 查看後端文件位置
vi /app/tomcat/webapp/root/WEB-INF/common-applicationcontext.xml 查看資料庫
查看內存溢出
top 查看系統性能
jmap -heap pid 列印heap的概要信息
jmap -histo pid 列印每個class的實例數目,內存佔用,類全名信息
jmap -mp:format=b,file=heap.bin pid 輸出heap信息到heap.bin文件
jhat -J-mx768m heap.bin 分析heap.bin文件
最好使用eclipse的MAT查看heap.bin,相比jhat等更加直觀,容易發現內存溢出
查看死鎖
jstack -l pid > deadlock.jstack 輸出stack信息到deadlock.jstack
vi deadlock.jstack 使用vi查看
資料庫導出
/usr/local/mysql/bin/mysqlmp -u root -p test > test_new.sql
資料庫導入
/usr/local/mysql/bin/mysql -u root -p test < test_new.sql
選擇性查看日誌
grep * /app/tomcat/log/*.log|cut -d '#' -f 8-9|sort -t '#' -u
H. 如何查看Linux下的Tomcat的進程
您好,linux下查看tomcat進程命令為:ps aux | grep tomcat
名稱:ps
使用許可權:所有使用者
使用方式:ps [options] [--help]
說明:顯示瞬間行程 (process) 的動態
參數:ps的參數非常多, 在此僅列出幾個常用的參數並大略介紹含義
-A 列出所有的進程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
管道符「|」,這個符號可以將一個命令的標准輸出管道為另外一個命令的標准輸入
grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行列印出來
I. linux 下創建低許可權賬號運行tomcat
1:root創建新賬戶
useraddtest_tomcat (此命令後在/home目錄下生成一個test_tomcat的用戶目錄,並生成一個test_tomcat用戶組);
創建新用戶並給新用戶分配到已有用戶組:useradd -g 組名 test_tomcat;
用戶添加附屬組:useradd -G 組名 test_tomcat 或 useradd -g 主組名 -G 附屬組名test_tomcat;
2:設置密碼
passwdtest_tomcat
3:更改tomcat所屬用戶及許可權
chown test_tomcat var/tomcat/default (var/tomcat/defaulttomcat安裝目錄)(將tomcat擁有者更改為test_tomcat);
chgrp -R
test_tomcat var/tomcat/default ( 改變tomcat用戶組為
test_tomcat,-R表示遞歸既改變目錄下所有文件
)
chmod -R g+w var/tomcat/default ( 給目錄所屬組添加寫的許可權,g:文件所屬組,u:文件所屬用戶,o:表示其他用戶,a:表示所有用戶;"+":表添加許可權,"-":減少許可權;w:寫,r:讀,x:執行 )
4:埠轉發
非root用戶不能監聽1024以下埠;啟動時錯誤報沒有許可權;所以需要將80埠轉發至8080埠
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
將規則保存至iptables裡面:service iptables save
修改tomcat conf文件內service.xml文件將80埠改為8080
5:切換用戶停止/啟動tomcat
su test_tomcat( 切換至test_tomcat用戶 )
var/tomcat/default/bin/shutdown.sh 停止tomcat
var/tomcat/default/bin/startup.sh 啟動tomcat
J. linux系統下怎麼關閉tomcat
在Linux系統下,啟動和關閉Tomcat使用命令操作。
進入Tomcat下的bin目錄
停止Tomcat服務命令
執行tomcat ./shutdown.sh 後,雖然tomcat服務不能正常訪問了,但是ps -ef | grep tomcat 後,發現tomcat對應的java進程未隨web容器關閉而銷毀,進而存在僵屍java進程。網上看了下導致僵屍進程的原因可能是有非守護線程(即User Thread)存在,jvm不會退出(當JVM中所有的線程都是守護線程的時候,JVM就可以退出了;如果還有一個或以上的非守護線程則JVM不會退出)。通過一下命令查看Tomcat進程是否結束:
若顯示一下相似信息,說明Tomcat進程未結束
此時我們可強制結束該進程(僵屍進程)
上一命令執行完畢後,重新查看Tomcat進程情況,Tomcat已完全停止。