对于tomcat通过catalina.sh停止服务后,tomcat进程没有退出问题解决办法

本文介绍了一种在停止Tomcat服务时强制杀死进程的方法。通过修改catalina.sh脚本,在正常停止流程后使用ps和kill命令确保所有Tomcat相关进程被彻底关闭。这种方法适用于当标准停止命令无法完全关闭服务的情况。

例:tomcat路径及名称为/data/tomcat/

vim /data/tomcat/bin/catalina.sh

找到org.apache.catalina.startup.Bootstrap "$@" stop这行,然后在这行下面加上

if [ $? -eq 0 ];then
        kill -9 `ps -ef |grep tomcat |awk '/.*\/data\/tomcat\/.*/{print $2}'`
fi

if [ $? -eq 0 ];then
        ps -ef | grep -v "grep --color=auto" | grep "/data/tomcat" |awk '{print "kill -9 "$2}' |bash
fi

暴力但实用

### Tomcat 中运行 catalina.sh 时权限被拒绝问题的解决方案 在解决 Tomcat 的 `catalina.sh` 文件执行时出现的权限被拒绝问题时,需要确保文件具有正确的执行权限,并且目录结构及环境配置无误。以下是详细的解决方法: #### 1. 检查并设置执行权限 如果 `catalina.sh` 文件没有执行权限,可以使用 `chmod` 命令为其添加执行权限: ```bash chmod a+x /path/to/tomcat/bin/catalina.sh ``` 这将为所有用户(包括文件所有者、组和其他用户)添加执行权限[^1]。 #### 2. 使用超级用户权限运行脚本 如果上述步骤未能解决问题,可能是因为当前用户对文件或目录没有足够的权限。可以尝试使用 `sudo` 提升权限来运行脚本: ```bash sudo chmod 777 /path/to/tomcat/bin/startup.sh sudo ./startup.sh ``` 这里将 `startup.sh` 的权限设置为最高(777),以确保任何用户都可以读取、写入和执行该文件[^2]。 #### 3. 确保父目录及其子文件具有适当权限 即使 `catalina.sh` 文件本身具有执行权限,但如果其所在的目录没有适当的访问权限,仍然会导致 `Permission denied` 错误。可以通过以下命令检查并修复目录权限: ```bash chmod -R 755 /path/to/tomcat/bin ``` 此命令递归地为 `bin` 目录及其所有子文件设置适当的权限[^3]。 #### 4. 验证文件路径是否正确 有时,错误可能是由于指定的路径不正确导致的。请确认 `catalina.sh` 文件的实际路径与脚本中引用的路径一致。例如,如果使用的是相对路径,请确保工作目录正确[^4]。 #### 5. 检查系统级权限限制 某些情况下,操作系统可能会对特定目录或设备施加额外的权限限制。例如,Linux 系统中的 `/dev` 设备可能需要特殊权限才能访问。如果遇到类似 `/dev/manage: Permission denied` 的错误,可以尝试通过以下方式解决: - 检查 SELinux 或 AppArmor 是否启用了严格的权限控制。 - 如果启用,可以临时禁用 SELinux 进行测试: ```bash setenforce 0 ``` - 或者为 Tomcat 所需的资源添加适当的策略[^4]。 #### 6. 确认文件属性 在某些终端环境中(如 Xshell),未赋予执行权限的脚本文件通常不会显示为绿色。可以通过以下命令查看文件权限: ```bash ll /path/to/tomcat/bin/catalina.sh ``` 如果没有执行权限,按照前述方法为其添加执行权限后,文件名会变为绿色并可正常执行[^5]。 --- ### 示例代码 以下是一个完整的示例,展示如何检查和修复权限问题: ```bash # 切换到 Tomcat 的 bin 目录 cd /path/to/tomcat/bin # 检查 catalina.sh 文件的权限 ll catalina.sh # 如果没有执行权限,添加执行权限 chmod a+x catalina.sh # 确保整个 bin 目录具有适当的权限 chmod -R 755 . # 使用 sudo 提升权限运行 startup.sh sudo ./startup.sh ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值