用awk打印进程号并且kill掉

本文介绍了一种使用ps、grep、awk和xargs等命令组合,来查找并终止已停止响应但未释放内存资源的训练进程的方法,以有效管理服务器资源。
ps aux | grep train_dataset | awk '{print $2}' |xargs kill -9

有时候有一些训练进程已经停止了但是内存没有释放掉,这是还是要kill掉清理内存

 

 

### 如何编写 Shell 脚本来查找并终止 Python 进程 为了实现通过 Shell 脚本查找并终止 Python 进程的功能,可以利用 `ps` 命令来获取当前运行的进程列表,并结合 `grep` 和 `awk` 来筛选出目标进程。最后使用 `kill` 或者 `pkill` 命令来结束这些进程。 以下是完整的解决方案: #### 方法一:基于 `ps`, `grep`, 和 `awk` 可以通过以下命令组合找到所有的 Python 进程并杀死它们: ```bash #!/bin/bash # 查找所有名为 "python" 的进程 ID 并存储到变量中 PIDS=$(ps aux | grep '[p]ython' | awk '{print $2}') # 遍历 PIDs 列表并逐一杀对应的进程 for PID in $PIDS; do echo "Killing process with PID: $PID" kill -9 $PID 2>/dev/null || true done ``` 上述脚本中的每一部分都具有特定功能: - 使用 `ps aux` 获取系统上所有正在运行的进程及其详细信息[^1]。 - 使用 `grep '[p]ython'` 筛选出包含关键字 “python” 的行,注意这里的正则表达式 `[p]ython` 是为了避免匹配到 `grep python` 自身产生的输出。 - 使用 `awk '{print $2}'` 提取每条记录中的第二列即进程号(PID)。 - 对于提取出来的每一个 PID,调用 `kill -9` 发送 SIGKILL 信号强制停止该进程。 #### 方法二:直接使用 `pkill` 如果只需要简单地根据名称终止某些类型的程序,则可以直接采用更简洁的方式——借助 `pkill` 工具完成同样的任务: ```bash #!/bin/bash echo "Killing all python processes..." pkill -f python ``` 这里 `-f` 参数表示按照完整命令行而不是仅仅依据可执行文件名来进行模式匹配。 两种方法各有优劣,在实际应用过程中可以根据具体需求选择合适的一种或者混合使用两者的优势特性。 ```bash #!/bin/bash # 如果需要更加精确控制哪些具体的Python子进程被关闭, # 可以先打印出来确认后再决定是否真的要干他们。 ps aux | grep '[p]ython' read -p "Do you want to proceed killing these processes? (y/n): " choice if [[ "$choice" == "y" ]]; then pids_to_kill=$(ps aux | grep '[p]ython' | awk '{print $2}') for pid in $pids_to_kill; do echo Killing $pid... kill -9 $pid 2>/dev/null || true done fi ``` 此增强版脚本允许用户在真正采取行动之前先行预览即将受到影响的目标清单,从而减少误操作的可能性。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值