首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你如何杀死所有超过一定年龄的Linux进程?

要杀死所有超过一定年龄的 Linux 进程,您可以使用以下步骤:

  1. 首先,您需要找到所有满足条件的进程。您可以使用 ps 命令来列出所有进程,并使用 grep 命令来过滤出您感兴趣的进程。例如,要找到所有名称包含 "nginx" 的进程,您可以运行以下命令:
代码语言:txt
复制
ps aux | grep nginx
  1. 接下来,您需要确定哪些进程超过了您定义的年龄。您可以使用 ps 命令的 -o 选项来显示进程的启动时间。例如,要查看所有进程的启动时间,您可以运行以下命令:
代码语言:txt
复制
ps -eo pid,etime,comm

这将显示每个进程的进程 ID、启动时间和命令名称。您可以使用 awk 命令来解析启动时间,并根据您的条件筛选出满足条件的进程。

  1. 最后,您需要杀死所有满足条件的进程。您可以使用 kill 命令来杀死进程。例如,要杀死进程 ID 为 12345 的进程,您可以运行以下命令:
代码语言:txt
复制
kill 12345

如果进程没有正常响应,您可以使用 -9 选项来强制杀死进程:

代码语言:txt
复制
kill -9 12345

将上述步骤组合在一起,您可以编写一个脚本来杀死所有超过一定年龄的 Linux 进程。例如:

代码语言:bash
复制
#!/bin/bash

# 设置进程名称
process_name="nginx"

# 设置最大年龄(以天为单位)
max_age=30

# 查找所有满足条件的进程
processes=$(ps aux | grep $process_name | grep -v grep)

# 遍历所有进程
for process in $processes; do
  # 获取进程 ID
  pid=$(echo $process | awk '{print $2}')

  # 获取进程启动时间
  start_time=$(ps -p $pid -o etime | tail -n 1)

  # 计算进程年龄(以天为单位)
  age=$(echo $start_time | awk -F- '{print $1}')

  # 如果进程年龄超过最大年龄,则杀死进程
  if [ $age -gt $max_age ]; then
    echo "Killing process $pid with age $age days"
    kill -9 $pid
  fi
done

这个脚本将查找所有名称包含 "nginx" 的进程,并杀死所有启动时间超过 30 天的进程。您可以根据需要修改 process_namemax_age 变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Linux中查看所有正在运行的进程

你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。...ps命令 输入下面的ps命令,显示所有运行中的进程: # ps aux | less 其中, -A:显示所有进程 a:显示终端中包括其它用户的所有进程 x:显示无控制终端的进程 任务:查看系统中的每个进程...在命令提示行中输入top: # top 输出: 图1:top命令:显示Linux任务 按q退出,按h进入帮助。 显示进程的树状图 pstree以树状显示正在运行的进程。树的根节点为pid或init。...pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID: $ pgrep firefox 下面命令将显示进程名为sshd、所有者为root的进程。...$ pgrep -u root sshd 向htop和atop说hello htop是一个类似top的交互式进程查看工具,但是可以垂直和水平滚动来查看所有进程和他们的命令行。

62K71
  • 【Hadoop】万字长文详解Yarn资源隔离

    但需要注意的是,不能仅凭该内存量是否超过设定的内存最高值来决定是否杀死一个Container。...❝Linux中所有的进程都是通过fork()复制来实现的,而为了减少创建进程带来的堆栈消耗和性能影响,Linux使用了写时复制机制来快速创建进程。...为了避免误杀Container,Hadoop赋予每个进程年龄属性,并规定刚启动进程的年龄是1,且MonitoringThread线程每更新一次,各个进程年龄加一 在此基础上,选择被杀死Container...的标准如下: 如果一个Container对应的进程树中所有进程(年龄大于0)总内存超过(用户设置的)最大值的两倍。...有年龄大于1的进程总内存量超过(用户设置的)最大值。

    1.2K11

    你知道如何在 Linux 下快速找出所有运行的进程吗,学会这个方法后整个世界都一目了然了!

    在 Linux 机器上工作时,有时你可能需要找出当前正在运行的进程。你可以使用许多命令来查找有关正在运行的进程的信息,其中 ps 和 top 是最常用的命令。...如何使用 pstree 命令 pstree 命令的一般语法如下: ps [OPTIONS] [USER or PID] 以最简单的形式调用时没有任何选项或参数,pstree 命令将显示所有正在运行的进程的分层树结构...例如,你知道 PID 即可让你杀死发生故障的进程。 我们可以通过 -p 选项让 pstree 显示进程的 PID 。 # 每个进程或线程后的括号中均显示的是 PID。...注:显示 PID 或 PGID 时,将隐式禁用默认的进程合并。 显示命令行参数 默认情况下,pstree 不会向你显示正在运行的进程的命令行参数。要查看进程是如何开始的,你可以使用 -a 选项。...高亮 pstree 还可以使你突出显示进程以更好地呈现视觉效果。-h 选项指示 pstree 高亮显示当前进程及其所有父进程。

    1.2K30

    Linux中五个你可能不了解的killall选项

    糖豆贴心提醒,本文阅读时间8分钟 引言 Linux的命令行提供很多命令来杀死进程。...如何杀死“test_again”进程呢? ? 如你所见,killall命令终止了“test_again”进程。你可以通过ps命令来确认这个事实: ?...你可以使用-s选项(后面跟一个信号名)来向一个进程发送特殊信号。 想要知道所有可以发送的信号,可以使用-l选项(小写L)来获取: ? killall支持上面的所有信号。 那这些信号都是干什么的?...你可以使用下面的命令来获取所有信号的说明: $ man 7 signal 一个有趣的小问题 killall命令的man说:假如进程的名字的长度小于等于15,默认情况下就会以完整名称匹配。...假如,两个进程的名字都超过15个字符,根据man,killall将把两个进程全部杀死。比如: ? 你可以观察到,两个进程的名字都超过15个字符。现在,当我使用killall试着杀死第二个进程时: ?

    1.2K60

    找到并杀掉 Linux 系统中的僵尸进程的命令方法

    可以试试在终端中使用 pstree 命令查看进程的树型结构,你能看到系统各个进程的“家族树”。 Linux系统里的僵尸进程是什么?...同样,大部分 Linux 系统进程最大 PID 设置为 32768,如果过多僵尸进程导致其他重要任务没有 PID 可用,你的系统会发生崩溃。...这是真实可能发生的,它有一定的概率,特别当存在一个编码糟糕的程序开始大量产生僵尸进程的时候。 在这种情况下,找到并杀死僵尸进程是一个明智的做法。...现在问题进入下一步,如何杀死 “僵尸” 进程? 如何找到并杀死一个僵尸进程?僵尸进程能被杀死吗? 僵尸进程已经死了,要如何才能杀死一个已经死亡的进程呢?...上述命令只会打印所有处在 Z+ 状态(表示僵尸状态)的进程。

    14K40

    Linux之killall命令

    Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。...] 命令功能 用来结束同名的的所有进程 命令参数 -Z 只杀死拥有scontext 的进程 -e 要求匹配进程名称 -I 忽略小写 -g 杀死进程组而不是进程 -i 交互模式,杀死进程前先询问用户 -l...列出所有的已知信号名称 -q 不输出警告信息 -s 发送指定的信号 -v 报告信号是否成功发送 -w 等待进程死亡 --help 显示帮助信息 --version 显示版本显示 杀死所有同名进程 >...> killall -u deploy 我们只想杀死运行时间超过 6h 的进程 那么可以使用-o选项,其中o代表older > killall -o 6h 杀死进行时间小于 5h 的进程 > killall...,担心把不该杀死的进程给杀死了,那么你可以使用-i选项 > killall -i rumenz 等待直到某个进程被终止 当一个信号被发送至某个进程,如果你想确定该进程已经被杀死了才返回执行结果,可以使用

    1.5K00

    Linux之killall命令

    Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。...] 命令功能 用来结束同名的的所有进程 命令参数 -Z 只杀死拥有scontext 的进程 -e 要求匹配进程名称 -I 忽略小写 -g 杀死进程组而不是进程 -i 交互模式,杀死进程前先询问用户 -l...列出所有的已知信号名称 -q 不输出警告信息 -s 发送指定的信号 -v 报告信号是否成功发送 -w 等待进程死亡 --help 显示帮助信息 --version 显示版本显示 杀死所有同名进程 >...> killall -u deploy 我们只想杀死运行时间超过 6h 的进程 那么可以使用-o选项,其中o代表older > killall -o 6h 杀死进行时间小于 5h 的进程 > killall...,担心把不该杀死的进程给杀死了,那么你可以使用-i选项 > killall -i rumenz 等待直到某个进程被终止 当一个信号被发送至某个进程,如果你想确定该进程已经被杀死了才返回执行结果,可以使用

    53540

    Linux之killall命令

    Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。...] 命令功能 用来结束同名的的所有进程 命令参数 -Z 只杀死拥有scontext 的进程 -e 要求匹配进程名称 -I 忽略小写 -g 杀死进程组而不是进程 -i 交互模式,杀死进程前先询问用户 -l...列出所有的已知信号名称 -q 不输出警告信息 -s 发送指定的信号 -v 报告信号是否成功发送 -w 等待进程死亡 --help 显示帮助信息 --version 显示版本显示 杀死所有同名进程 >...> killall -u deploy 我们只想杀死运行时间超过 6h 的进程 那么可以使用-o选项,其中o代表older > killall -o 6h 杀死进行时间小于 5h 的进程 > killall...,担心把不该杀死的进程给杀死了,那么你可以使用-i选项 > killall -i rumenz 等待直到某个进程被终止 当一个信号被发送至某个进程,如果你想确定该进程已经被杀死了才返回执行结果,可以使用

    54000

    Linux进程检测与控制

    所以,探究Linux进程以及与进程有关的检测与控制是非常有意义的。这次内容如下。...一、Linux进程与程序 1、进程与程序的关系 进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源。...2、Linux下的进程管理工作 Linux下的进程管理主要有进程查看(判断健康状态)、终止和优先级控制三个方面,后续将围绕这几个方面展开论述。...如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 扩展:如何获取CPU的总核心数?...分区 : 系统分区 ② swap交换分区 :一般情况下为内存的1~2倍,但是尽量不要超过2G ③ /分区 :根分区,所有文件都存放于此 swap分区:就是当计算机的内存不足时,系统会自动从硬盘中划出一块区域充当内存使用

    48821

    为何killall有时找不到你的进程?killall是干什么的?

    在Linux下有很多命令用于杀死进程,它们可以用于不同的场景,例如通过进程名杀死进程,通过pid杀死进程。...而且由于killall是根据名称杀死进程,因此如果当前运行着大量的hello程序,那么可以一次性杀死所有hello程序。.../hello 所以killall你到底行不行? 为何 为了找出killall失效的原因,我们必须知道它到底是如何通过进程名找到进程的。...至此我们可以猜测,killall命令会去读取进程在proc文件系统中的stat文件里的名字。那么如果这么名字和你要杀死的进程对不上不就找不到了吗? 至此,想必你已经明白前面问题的原因了。...也就是你可以使用killall hello杀死它。 总结 如果你发现你的程序无法通过killall 进程名的方式杀死的话,不妨看看proc文件系统中这个进程的stat文件或者status文件中的名。

    1.7K10

    【Android开发高级系列】内存管理专题

    表示系统内存已经非常低,你的应用即将被杀死,请释放所有可能释放的资源;         这里是这个方法实现的示例代码:Release memory in response to events         ...Linux OOM Killer的基本想法是: 当系统已经没法再分配内存的时候,内核会遍历所有的进程,对每个进程计算badness值,得分(badness)最高的进程将会被杀死。...当内核发现无法再分配内存时,便会计算每个进程的badness值,然后选择最大的(系统认为最不重要的)将其杀死。         那么,内核是如何计算进程的badness值的呢?...LowMemoryKiller通常会在Linux OOMKiller工作之前,就开始杀死进程。           ...LowMemoryKiller杀死进程的时候会在内核留下日志,你可以通过dmesg命令中看到。

    35930

    Linux 查看进程状态及进程关闭命令

    前言在 Linux 系统中,查看进程状态和杀死进程是常见的管理任务,特别是我们部署完项目之后,需要确定程序是否正常启动,或者是需要关闭某个进程。...本文将详细介绍如何查看进程状态以及如何介绍使用 kill 命令杀死进程。希望能通过本文,让大家熟悉Linux相关命令,加深对相关命令的操作。1....常用选项包括:-a:显示所有用户的进程-u:显示指定用户的进程-x:显示没有控制终端的进程-e:显示所有进程-f:显示完整格式的进程信息示例:ps -ef | grep 进程名字/端口号ps -ef |...杀死进程利用上述ps命令查询到运行中的进程,下一步我们需要关闭该程序,就需要下一个命令了,在 Linux 中,可以使用 kill 命令杀死进程。...总结本文算是Linux比较基础的命令介绍,通过本文应该可以了解了如何在 Linux 中查看进程状态以及如何使用 kill 命令杀死进程,在实际应用中也是用ps查询对应的进程pid,然后在利用kill命令关闭进程

    1.5K10

    Centos应用“Cannot allocate memory”的解决方案

    1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。...2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 Overcommit和OOM: Linux对大部分申请内存的请求都回复"yes",以便能跑更多更大的程序。...当linux发现内存不足时,会发生OOM killer(OOM=out-of-memory)。它会选择杀死一些进程(用户态进程,不是内核线程),以便释放内存。...当oom-killer发生时,linux会选择杀死哪些进程?选择进程的函数是oom_badness函数(在mm/oom_kill.c中),该函数会计算每个进程的点数(0~1000)。...点数越高,这个进程越有可能被杀死。每个进程的点数跟oom_score_adj有关,而且oom_score_adj可以被设置(-1000最低,1000最高)。

    1.4K10

    三分钟基础:杀死进程的N种姿势你知道吗

    来源:公众号【编程珠玑】 作者:守望先生 你是如何终止你的程序的?在《killall为什么找不到你的进程》一文中提到了几个杀死进程的方法,本文来总结一下有哪些方法可以终止进程。...,它在某些情况下会失效,具体可以参考《killall为什么找不到你的进程》 它还支持杀死一定时间的进程,例如杀死运行超过30分钟的hello进程: $ killall -o 30m hello 其中-...pkill pkill也可以根据进程名杀死进程,它和killall有点类似。...$ pkill hello 由于你可能起了多个hello程序,所以为了杀死最旧的进程,你可以这样做: $ pkill -o hello #oldest 或者杀死最新的进程: $ pkill -n hello...#newest 或者计算运行的hello程序的数量: $ pkill -c hello 如何查找进程id 上面提到的有些命令需要根据pid进行操作,如何获取pid呢?

    53720

    杀死进程的N种姿势你知道吗

    来源:公众号【编程珠玑】 作者:守望先生 ID:shouwangxiansheng 前言 你是如何终止你的程序的?...在《killall为什么找不到你的进程》一文中提到了几个杀死进程的方法,本文来总结一下有哪些方法可以终止进程。...,它在某些情况下会失效,具体可以参考《killall为什么找不到你的进程》 它还支持杀死一定时间的进程,例如杀死运行超过30分钟的hello进程: $ killall -o 30m hello 其中-...$ pkill hello 由于你可能起了多个hello程序,所以为了杀死最旧的进程,你可以这样做: $ pkill -o hello #oldest 或者杀死最新的进程: $ pkill -n hello...#newest 或者计算运行的hello程序的数量: $ pkill -c hello 如何查找进程id 上面提到的有些命令需要根据pid进行操作,如何获取pid呢?

    65710
    领券