Linux终止进程(kill process)的一些玩法

经常运行一个程序时,表面上已经终止了,实际上还在后台运行。一来呢,它可能占据端口,导致端口复用的时候报错。二来呢,它可能占用GPU,让你显存直接少一块。

尤其是在多进程程序,假如运行"python train.py",直接后台起了8个进程,你需要终止这些进程的话,你可以用最原始的方法:

shell 复制代码
ps -ef | grep "python train.py"
# 8 个 pid
kill -9 <pid> # 运行8次

很直接,但是不够优雅。而且效率低下。你可以这样:

shell 复制代码
kill -9 $(pgrep -f "python train.py")

一行命令,就能终止所有的相关进程。用这个命令时需要特别小心,确保不伤及无辜进程。

为了更优雅一点,我们可以把这行命令写到bashrc或者zshrc里:

shell 复制代码
vim ~/.bashrc
# paste the following
mykill() {
    kill -9 $(pgrep -f "$1")
}
source ~/.bashrc

然后,我们就可以:

shell 复制代码
mykill "python train.py"

这样就很优雅了~

相关推荐
二炮手亮子22 分钟前
Linux命令行合集(涵盖定时任务、防火墙、SHH、线上问题实战等)
linux·运维
jay神1 小时前
深度学习的优化器应该怎么选?
人工智能·python·深度学习·毕业设计·课程设计
张洛闻Eren8 小时前
MySQL 维护稳定系统【MySQL第二课】
linux·数据库·mysql·云原生
ltl8 小时前
Linux 异步 I/O:epoll 与 io_uring 对比
linux
ltl8 小时前
压缩算法工程实践:吞吐、比率与 CPU 权衡
linux
fiveym9 小时前
01 - iPXE + Clonezilla 网络装机原理解析
linux·运维·服务器·网络
虎头金猫9 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
反转180度10 小时前
Qt 6 + C++17 实现 SFTP 批量部署:工业设备运维工具实战解析
运维·c++·qt
雨辰AI11 小时前
RAG 知识库搭建:基于人大金仓构建信创运维问答机器人|全栈国产化落地完整版
运维·ai·机器人·ai编程