Linux和Windows下操作Tomcat

Posted Java之初学者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux和Windows下操作Tomcat相关的知识,希望对你有一定的参考价值。

1 Linux下Tomcat的相关操作

使用方法:将脚本 tm-01复制到指定路径(如~/tomcat.sh)下的文件中,然后在.bashrc文件中添加如下一行,为该命令添加别名:

1alias tmt='sh ~/tomcat.sh'

然后运行如下命令,使修改生效:

1  . .bashrc            
2或 
3  source .bashrc

至此,脚本设置完成,可以使用:tmt -h查看帮助。

脚本清单 tm-01

  1#! /bin/bash
 2

 3#######################################################
 4#####   @author Aaron                             #####
 5#####   @since  2018/11/14 16:54                  #####
 6#####   <p>描述:Tomcat进程相关操作</p>            #####
 7#######################################################
 8
 9#########################################函数区##########################################################
10#/** 
11# * 杀死Tomcat进程函数
12# */
13function killTomcat
14{
15    # 获取Tomcat的PID号
16    TOMCAT_PID=`ps -eo pid,comm,cmd | grep 'catalina' | grep -v 'grep' | sed 's/s//g' | sed 's/java.*//g'`
17    # 判断Tomcat是否正在运行
18    if [ -z "$TOMCAT_PID" ]; then
19        # 没有运行
20        continue
21    else
22        # 杀死Tomcat进程
23        kill -9 `ps -eo pid,comm,cmd | grep 'catalina' | grep -v 'grep' | sed 's/s//g' | sed 's/java.*//g'`
24        # 判断Tomcat是否已删除
25        `ps -eo pid,comm,cmd | grep 'catalina' | grep -v 'grep'`
26    fi
27}
28
29#/** 
30# * 倒计时函数
31# */
32function countDownTimer
33{
34    for (( i=$1; i>0; i-- ))
35    do
36        printf "=====================重启倒计时:[ %-03s 秒]=================== " $i
37        sleep 1
38    done
39    # 换行
40    echo 
41}
42#########################################函数区##########################################################
43
44#########################################逻辑区##########################################################
45# 使用case...esac... 遍历选项
46case $1 in
47# 查看Tomcat进程
48"-p" | "-P")
49    ps -eo pid,comm,cmd | grep 'catalina' | grep -v 'grep'
50    exit
51    ;;  
52
53# 杀死Tomcat进程
54"-k" | "-K")
55    # 调用杀死Tomcat进程函数
56    killTomcat
57    exit
58    ;;  
59
60# 杀死Tomcat后,定时重启
61"-ks" | "-KS")
62    # 调用杀死Tomcat进程函数
63    killTomcat
64    # 判断是否传入等待重启时间参数
65    if [ -z $2 ];then
66        # 无参数时,不等待直接重启
67        sh $CATALINA_HOME/bin/startup.sh
68        exit
69    else
70        # 判断传入参数是否是数字
71        if [ "$2" -gt 0 ] 2>/dev/null;then
72            continue
73        else
74            echo "请输入数字:${2}"
75            exit
76        fi
77    fi
78
79    # 等待 $1 秒后重启
80    countDownTimer $2
81    # 重启Tomcat
82    sh $CATALINA_HOME/bin/startup.sh
83    exit
84    ;;  
85
86# 启动Tomcat
87"-s" | "-S" | "-start" | "-START")
88    # 获取Tomcat的PID号
89    TOMCAT_PID=`ps -eo pid,comm,cmd | grep 'catalina' | grep -v 'grep' | sed 's/s//g' | sed 's/java.*//g'`
90    # 判断Tomcat是否正在运行
91    if [ -z "$TOMCAT_PID" ]; then
92        sh $CATALINA_HOME/bin/startup.sh
93        exit
94    else
95        echo "警告:Tomcat正在运行,请先杀死该进程再启动,或者使用"-ks" 选项。查看帮助使用"-h""
96    fi
97    ;;
98
99# 查看帮助
100"-h" | "-help" | "-H" | "-HELP")
101  echo "-p  使用"ps -ef | grep tomcat" 命令查看Tomcat进程"
102    echo "-k  使用"kill -9 PID" 命令杀死Tomcat进程"
103    echo "-s  使用"startup.sh" 脚本启动Tomcat"
104    echo "-ks 杀死Tomcat进程后,使用"startup.sh" 脚本定时重启Tomcat,如:"-ks 12"表示杀死Tomcat后,等待12秒重启Tomcat"
105    echo "-h  查看帮助"
106    ;;
107
108# default
109*)
110    echo "未知参数,请使用"-h"选项查看帮助"
111    ;;
112esac
113#########################################逻辑区##########################################################
114
115#########################################备注区##########################################################
116# 注释:
117# 1. ps -eo: 所有进程且指定参数(可选参数有:pid,comm,cmd...)
118# 2. grep -v :          排除字符串
119# 3. sed 's/s//g' :    删除所有空格
120# 4. sed 's/java.*//g : 删除java开头的字符
121# 5. -z "$STRING" :     字符串为空,注意双引号不能省略
122# 6. -n "$STRING" :     字符串不为空,注意双引号不能省略
123# 7. case esac :        相当于switch...case...
124# 8. function :         函数以及参数的传递
125# 9. [ "$2" -gt 0 ] 2>/dev/null : 判断输入参数是否是数字的方法,直接与0对比,并把错误信息输出到/dev/null,即不输出错误信息
126#########################################备注区##########################################################

2 Windows下杀死Tomcat

在日常使用IDEA或Eclipse开发中,经常出现项目正跑着,然后IDE不正常关闭,当你再打开时,由于Tomcat端口占用让你无法再启动项目。以前我都是通过注销系统来解决,最近看到一篇相关文章,共勉。

2.1 根据PID杀死进程

1) 查看端口占用情况

命令:

1netstat -ano | findstr "8080"

netstat        -a  显示所有连接和监听端口

                    -o  显示拥有的与每个连接关联的进程ID,即PID

findstr        后面可跟Tomcat端口号

如图tm-01所示:

图tm-01 查看Tomcat端口占用情况

由图tm-02可以看出,IDE中的Tomcat确实在运行中。

Linux和Windows下操作Tomcat

图tm-02 IDE运行中的Tomcat


2) 杀死占用端口的进程

命令:

1taskkill /pid 3756 -t -f

命令执行结果如图tm-03tm-04所示:

Linux和Windows下操作Tomcat

图tm-03 根据PID杀死Tomcat进程

Linux和Windows下操作Tomcat

图tm-04 杀死Tomcat结果


2.2 根据进程名杀死进程

1) 查看占用端口号

使用命令与2.1中的第1)部分相同。

2)查看占用该端口的进程名

命令:

1tasklist | findstr [port]

结果如图tm-05所示:

Linux和Windows下操作Tomcat

图tm-05 查看占用端口的进程

3)根据进程名杀死进程

命令:

1taskkill /f /t /im java.exe

结果如图tm-06所示:

图tm-06 根据进程名杀死进程


另外,taskkill命令可以通过使用taskkill /?查看帮助:

图tm-07 taskkill命令帮助


3 参考文章

  • [Window 中杀死指定端口 cmd 命令行 taskkill] —— https://www.cnblogs.com/xwer/p/7780571.html


以上是关于Linux和Windows下操作Tomcat的主要内容,如果未能解决你的问题,请参考以下文章

win7下的tomcat编译的java项目可不可以直接放在linux下的tomcat下运行

linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码

mac 安装tomcat

进程和线程

Windows下war包部署到Linux下Tomcat出现的问题

想把在Windows下的jsp项目部署到Linux下,已经在linux下装好了tomcat,且能正常启和访问,但把jsp项目