如何结束进程的 cpulimit

如何结束进程的 cpulimit

我正在使用非常方便的工具 CPULimit 来限制在我的 Ubuntu 服务器的 cron 中触发的导入的 CPU 使用率。

成功限制进程不是问题,我还能够在进程结束时将值返回到无限制(100%),但是当导入进程终止时,我留下了正在运行的 CPULimit 进程。当下一个 cron 作业运行时,CPULimit 进程列表将被附加到其中。

我可以运行类似的命令pkill -f cpulimit来删除进程,但是我假设有一个命令可以终止限制,只是没有记录。

为了帮助您理解,这里有一些流程:

  1. Cron触发导入。
  2. 导入脚本设置了 cpulimit 并指向> /dev/nullsudo -u {USER} cpulimit --pid {PID} --limit {LIMIT} > /dev/null &
  3. 在 grep 时,CPULimit 进程会添加到进程列表中ps aux | grep cpulimit
  4. 导入完成。
  5. 然后导入脚本将限制返回到 100%。
  6. 一个CPULimit进程被添加到允许100%CPU的进程列表中。

~ 我以为这会结束前一个进程,但它却让 {LIMIT} 进程和 limit:100 进程继续运行。

  1. 导入器再次运行。
  2. 又有两个 CPULimit 进程添加到了 列表中ps aux | grep cpulimit

我可以使用 shell_exec(pkill -f cpulimit) 来终止除最新进程之外的所有 CPULimit 进程。

但是,假设我想限制其他进程,而时间安排不太完美,那么对其他受限制进程的限制也会被终止。

有没有办法启动 cronjob,而不会在应用 CPULimit 时冻结导入器(我通过将其发送到 > /dev/null 解决了这个问题),然后当导入器结束时,在此实例中移除/删除/杀死限制器,因为它们目前只是堆叠起来?

** 如果达到限制,我不会请求终止导入器进程,而是希望终止进程中的 CPULimit 并删除限制进程的限制 **

相关内容