linux - 如何终止运行超过 36 小时且命令中包含特定短语的特定进程?

标签 linux kill kill-process

<分区>

在 Linux (CentOS 6) 上,如果运行时间超过 36 小时,我想终止其命令中包含“pkgacc”的进程(因此没有确切的命令,只是部分匹配)。

有相关问题:How do you kill all Linux processes that are older than a certain age?但是提供的任何解决方案都不适合我。

执行时:

 if [[ "$(uname)" = "Linux" ]];then killall --older-than 1h someprocessname;fi

它只是返回关于如何使用 killall 的 killall 使用页面,在其手册页中没有提及“--older-than”开关。

最佳答案

GNU coreutils 调用包装器中的程序要容易得多,例如 timeout而不是事后去寻找他们。特别是因为 timeout 拥有它的进程,所以它杀死了正确的进程是没有歧义的。因此

timeout 36h pkgaccess --pkg_option --another_option package_name

我在其中为 pkgaccess 命令编写了名称和选项,因为您没有提供它们。此过程将运行不超过 36 小时。

关于linux - 如何终止运行超过 36 小时且命令中包含特定短语的特定进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956954/

相关文章:

linux - float 除法 bash

c - 找出一个 C 循环

linux - Linux 中的终止命令

SHELL 自动从 crontab 中终止进程

无法打开共享对象文件: No such file or directory | including libbpf with userspace program

python - 为特定的 python 版本安装 pip

python - 如何在使用 Twitter Stream 给出的流示例上暂停、终止、停止或关闭 PycURL 请求

linux - 我杀死它后,该进程会自动再次出现

c - 如何设置进程C的状态终止?

winforms - 任务管理器中的“结束任务”始终设置 CloseReason.UserClosing