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已完全停止。