kill 掉进程的脚本 stop.sh

本文分享了一个使用Shell脚本循环停止指定进程的方法。通过不断检查目标进程是否存在并使用kill-9强制结束进程,确保彻底关闭。适用于需要批量管理进程的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时会启动多个进程,其实kill all也可以,



但个人习惯了stop.sh循环方式,一个一个的kill -9 

与大家分享一下


cat stop.sh

#!/bin/sh
process=$1
while true 
do
cnt=$(ps -wwwwaux | grep $process | wc -l)
if [ 1 -eq $cnt ]
then
echo "done"
break;
fi
$(ps -wwwwaux | grep $process | awk '{print $2}' | xargs kill -9) > /dev/null 2>&1
echo "stoping......"
sleep 1
done

03-19
<think>好的,我现在需要帮助用户查找关于stop.sh脚本的用法和示例。首先,用户提到了几个引用,其中引用[2]提到了stopOSWbb.sh脚本,引用[3]可能涉及Flink的相关脚本。我需要先回顾这些引用内容,看看是否有直接相关的信息。 引用[1]提到的是flink的job-manager.sh脚本,引用[2]详细说明了Oracle数据库中的OSWatcher相关脚本,特别是stopOSWbb.sh的路径和调用方式。引用[3]则是关于Flink的sql-gateway.sh。用户的问题是关于stop.sh的,可能需要从这些引用中找到关联。 首先,stop.sh通常用于停止服务或进程,不同的系统或应用可能有不同的实现。比如在Flink中可能有stop-cluster.sh,但用户直接提到的是stop.sh,需要确认是否有这样的脚本。根据引用[2],Oracle的stopOSWbb.sh是用来停止OSWatcher的,而用户可能想了解类似的stop.sh的使用方法。 接下来,我需要整理常见的stop.sh脚本用法。例如,在Tomcat中,stop.sh用于关闭服务器;在大数据工具如Hadoop或Flink中,可能有类似的脚本。根据引用[3],Flink的sql-gateway.sh有启动和停止的用法,但用户需要的是stop.sh,可能需要结合已有的引用信息推测。 可能需要给出通用的stop.sh示例,以及具体应用中的情况,比如Oracle中的stop脚本,或者Flink中的停止脚本。同时,确保回答符合用户的要求,如使用正确的中文,LaTeX格式的数学公式,但这里可能不涉及数学内容,所以不需要处理。另外,用户要求生成相关问题,我需要考虑相关问题可能涉及哪些方面,比如如何调试脚本、权限处理等。 需要验证每个引用的适用性,引用[2]中的stopOSWbb.sh确实是一个停止脚本的例子,可以引用作为示例。同时,可能用户的环境涉及不同的系统,需要涵盖多个可能性。确保回答结构清晰,分点说明用法和示例,并引用正确的来源。最后生成的相关问题需要与stop.sh相关,比如其他停止脚本、调试方法、权限管理等。</think>### stop.sh 脚本用法及示例 #### 1. 通用功能与用法 `stop.sh` 是常见的用于停止服务或进程脚本,其核心功能包括: - **终止进程**:通过`kill`命令或查找进程ID(PID)关闭目标程序[^2] - **清理资源**:释放端口、临时文件等系统资源 - **状态检查**:验证服务是否成功停止 基础用法示例: ```bash # 直接执行脚本(需在脚本目录下) ./stop.sh # 指定配置文件路径 ./stop.sh -c /path/to/config.conf # 强制停止(添加参数) ./stop.sh --force ``` #### 2. 典型应用场景 **Oracle数据库环境**(引用[2]案例): ```bash # 停止OSW性能监控工具 /u01/app/oracle/product/19.0.0/dbhome_1/suptools/tfa/release/tfa_home/ext/oswbb/stopOSWbb.sh ``` 该脚本停止`OSWatcher.sh`及其子进程,并打包归档监控日志[^2] **大数据处理系统**(引用[1][3]相关场景): ```bash # 停止Flink集群(示例逻辑) #!/bin/bash APP_PID=$(ps -ef | grep flink | grep -v grep | awk '{print $2}') kill -9 $APP_PID echo "Flink cluster stopped" ``` #### 3. 高级功能实现 ```bash #!/bin/bash # 带状态检查的增强版脚本 SERVICE_NAME="my_service" # 检查进程是否存在 if ps -ef | grep -v grep | grep $SERVICE_NAME > /dev/null then echo "Stopping $SERVICE_NAME..." pkill -f $SERVICE_NAME sleep 5 if [ $? -eq 0 ]; then echo "Service stopped successfully" else echo "Failed to stop service" >&2 exit 1 fi else echo "Service is not running" fi ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值