Linux 下启动、关闭tomcat 杀掉进程等命令

Linux操作Tomcat:启动、关闭与进程管理
本文介绍了在Linux环境下如何启动和关闭Tomcat服务器,包括使用`startup.sh`和`shutdown.sh`脚本,以及通过`kill -9 pid`命令杀死Tomcat进程。同时提供了通过`ps -ef | grep tomcat`查找进程号的方法,并展示了如何使用`netstat -anp`命令查看特定端口的进程PID。

1、启动Tomcat

去到tomcat的Bin目录下

./startup.sh  这是执行启动脚本,tomcat就启动

2、关闭tomcat,也一样,执行关闭脚本 ./shutdow.sh

3、kill -9 pid #pid 为相应的进程号 

例如 ps -ef |grep tomcat 输出如下 

sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start

则 5144 就为进程号 pid = 5144 

kill -9 5144 就可以彻底杀死tomcat 

查看文件命令:cat 文件名

  1. #直接查看指定端口的进程pid  
  2. netstat -anp|grep 9217  
  3. #结果为 tcp        0      0 :::9217                     :::*                        LISTEN      26127/java  
  4. #则26127为9217这个端口的tomcat进程的pid,然后就可以kill这个进程  
  5. kill -9 26127  
  6. #然后再启动tomcat即可 


<think>我们正在处理用户的新问题:查找并终止Tomcat进程Linux命令。用户提供了几个引用,但我们需要根据核心需求来提取有用的信息。用户需求:查找Tomcat进程杀掉(kill)根据引用内容,我们可以总结出以下关键步骤:1.查找Tomcat进程:通常通过`ps`命令结合`grep`来过滤出包含"tomcat"关键字的进程。2.提取进程ID(PID):使用`awk`来截取进程信息中的PID字段。3.使用`kill`命令终止进程:可以选择不同的信号,如`kill-9`(强制终止)或先尝试普通终止。引用[2]和[4]提供了具体的命令示例:-引用[2]:展示了`ps-eaf`来搜索Tomcat进程,并提到了使用`kill`命令。-引用[4]:给出了一个组合命令:`ps-ef|grep-vgrep|grepseq|awk'{print$2}'`,然后使用`kill`。因此,我们可以设计如下步骤:步骤1:查找Tomcat进程通常,Tomcat进程命令行中会包含"tomcat"或"bootstrap"等关键字。我们可以使用:`ps-ef|greptomcat`但是,这样也会把`grep`命令本身也显示出来,所以需要排除`grep`进程。引用[4]中使用了`grep-vgrep`来排除。步骤2:提取PID使用`awk`提取第二列(PID)。步骤3:杀死进程使用`kill`命令,可以选择使用`kill-9`(强制终止)或先尝试普通的终止信号(如`kill`默认发送SIGTERM)。我们可以将步骤1和2合并,然后通过`xargs`或直接使用`kill`命令来终止进程。两种常用方法:方法一:使用`awk`和`xargs``ps-ef|greptomcat|grep-vgrep|awk'{print$2}'|xargskill-9`方法二:使用`kill`命令直接处理`kill-9$(ps-ef|greptomcat|grep-vgrep|awk'{print$2}')`注意:上述命令中的关键字"tomcat"可以根据实际情况调整,如果进程信息中不包含"tomcat",可以尝试其他关键字,如"bootstrap"(因为Tomcat启动类为Bootstrap)。另外,引用[3]提到了几种关闭项目的方式,包括普通kill和kill-9,并指出了优缺点:-普通kill(默认SIGTERM):允许进程清理后退出,但可能不响应。-kill-9(SIGKILL):强制终止,立即生效,但不会给进程清理的机会。因此,建议先尝试普通终止,如果无效再使用强制终止。分步操作建议:1.首先尝试普通终止(发送SIGTERM信号):`kill$(ps-ef|greptomcat|grep-vgrep|awk'{print$2}')`2.等待几秒,检查进程是否还在。如果还在,则使用强制终止:`kill-9$(ps-ef|greptomcat|grep-vgrep|awk'{print$2}')`但是,为了确保安全,我们可以先只查找并列出进程,确认无误后再终止。完整步骤:步骤1:查找Tomcat进程并确认`ps-ef|greptomcat|grep-vgrep`步骤2:如果步骤1列出了正确的Tomcat进程,则执行终止命令(先普通,后强制)。或者,我们可以写一个脚本,先尝试普通终止,等待后再检查,如果还存在则强制终止。然而,用户可能希望一条命令解决,但为了安全,我们建议用户先确认进程。因此,我们给出两种方案:方案一:直接强制终止(简单粗暴,但可能造成数据丢失)```bash#查找并强制终止所有匹配'tomcat'关键字的进程kill-9$(ps-ef|greptomcat|grep-vgrep|awk'{print$2}')```方案二:先尝试普通终止,再强制终止(推荐)```bash#查找Tomcat进程IDTOMCAT_PID=$(ps-ef|greptomcat|grep-vgrep|awk'{print$2}')if[-n"$TOMCAT_PID"];thenecho"Tomcat进程ID:$TOMCAT_PID"#先尝试普通终止kill$TOMCAT_PIDsleep5#等待5秒#检查进程是否还存在ifps-p$TOMCAT_PID>/dev/null;thenecho"进程仍在,尝试强制终止..."kill-9$TOMCAT_PIDfiecho"Tomcat已停止"elseecho"未找到Tomcat进程"fi```但是,用户可能只需要命令,所以我们可以提供单行命令,并提醒用户谨慎操作。另外,注意:如果一台服务器上有多个Tomcat实例,使用"tomcat"关键字可能会匹配到多个,需要更精确的关键字(如特定的路径名)。因此,我们还可以建议用户使用更精确的查找,例如根据Tomcat的安装路径中的某个唯一标识。总结回答:我们将提供两种方式:1.简单的一行命令(强制终止)2.分步操作(先普通终止,再强制终止)同时提醒用户注意:如果Tomcat进程的关键字不是"tomcat",请替换命令中的关键字。最后,根据引用[3],我们还可以使用`netstat-ntl`来查看端口,但用户需求是杀掉进程,所以我们还是以进程查找为主。现在,我们按照要求生成回答。</think>### 查找并终止 Tomcat 进程Linux 命令 #### 🔍 查找 Tomcat 进程 ```bash # 精确查找 Tomcat 进程 (推荐) ps -ef | grep '[t]omcat\|[b]ootstrap' | grep -v grep # 或查找所有 Java 进程 (包含 Tomcat) ps -ef | grep java | grep -v grep ``` **命令解析**: - `ps -ef`:列出所有正在运行的进程 - `grep '[t]omcat'`:匹配包含 "tomcat" 的进程(`[t]` 语法避免匹配到 grep 自身) - `grep '[b]ootstrap'`:Tomcat 启动类名(双重匹配更准确) - `grep -v grep`:排除 grep 命令自身进程[^1][^4] **输出示例**: ``` tomcat 12345 1 0 10:21 ? 00:00:06 /java/jdk/bin/java -Dcatalina.base=/opt/tomcat ... ``` 👉 **第二列数字 `12345` 就是进程 PID** #### 💀 终止 Tomcat 进程 ```bash # 优雅终止 (先尝试) kill -15 <PID> # 强制终止 (优雅终止失败时使用) kill -9 <PID> # 单行组合命令 (强制终止所有 Tomcat 进程) ps -ef | grep '[t]omcat' | awk '{print $2}' | xargs kill -9 ``` **信号说明**: | 信号 | 命令 | 效果 | 适用场景 | |------|------------|--------------------------|------------------------| | SIGTERM(15) | `kill -15` | 请求进程正常退出 | 优先使用,允许清理资源 | | SIGKILL(9) | `kill -9` | 强制立即终止进程 | 进程无响应时使用 | #### 📌 完整操作流程 ```bash # 1. 查找进程 PID tomcat_pid=$(ps -ef | grep '[t]omcat' | awk '{print $2}') # 2. 检查是否找到进程 if [ -z "$tomcat_pid" ]; then echo "✖ 未找到 Tomcat 进程" else echo "✔ 找到 Tomcat 进程: PID=$tomcat_pid" # 3. 先尝试优雅终止 kill -15 $tomcat_pid sleep 5 # 等待 5 秒 # 4. 检查是否终止成功 if ps -p $tomcat_pid > /dev/null; then echo "➤ 进程仍在运行,执行强制终止..." kill -9 $tomcat_pid fi echo "☑ Tomcat 进程已终止" fi ``` #### ⚠ 注意事项 1. **权限要求**: - 普通用户只能终止自己启动进程 - 系统级 Tomcat 需 `sudo` 权限: ```bash sudo kill -9 <PID> ``` 2. **多实例场景**: - 使用安装路径精准定位: ```bash ps -ef | grep '/opt/tomcat9/' ``` 3. **端口验证**: ```bash # 检查 Tomcat 默认端口(8080)占用 netstat -tlnp | grep :8080 ``` > ⚠ **生产环境建议**: > 优先使用 `kill -15` 允许 Tomcat 执行清理操作,避免强制终止导致数据损坏[^3]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值