Nohang 是一个 Linux 守护程序,也是一个高度可配置的 OOM(内存溢出)阻止工具,适用于 Linux 系统,能够有效地防止内存不足的情况。
部分功能特性
具有良好注释的配置文件,配置方面(配置中有 38 个参数)
可以将 SIGKILL 和 SIGTERM 作为发送给 victim 的信号
支持 zram(使用 mem_used_total 作为触发器)
可定制的监控强度
桌面通知:用于预防 OOM 和警告内存不足
……
输出示例
MemAvail: 2976 M, 50.6 % | SwapFree: 10758 M, 100.0 % MemAvail: 0 M, 0.0 % | SwapFree: 10281 M, 95.6 % MemAvail: 0 M, 0.0 % | SwapFree: 9918 M, 92.2 % MemAvail: 0 M, 0.0 % | SwapFree: 8659 M, 80.5 % MemAvail: 0 M, 0.0 % | SwapFree: 7235 M, 67.3 % MemAvail: 19 M, 0.3 % | SwapFree: 6851 M, 63.7 % MemAvail: 0 M, 0.0 % | SwapFree: 5780 M, 53.7 % MemAvail: 0 M, 0.0 % | SwapFree: 5008 M, 46.6 % MemAvail: 0 M, 0.0 % | SwapFree: 4199 M, 39.0 % MemAvail: 0 M, 0.0 % | SwapFree: 3502 M, 32.6 % MemAvail: 0 M, 0.0 % | SwapFree: 2929 M, 27.2 % MemAvail: 0 M, 0.0 % | SwapFree: 2446 M, 22.7 % MemAvail: 0 M, 0.0 % | SwapFree: 2093 M, 19.5 % MemAvail: 0 M, 0.0 % | SwapFree: 1573 M, 14.6 % MemAvail: 0 M, 0.0 % | SwapFree: 1320 M, 12.3 % MemAvail: 0 M, 0.0 % | SwapFree: 1117 M, 10.4 % MemAvail: 0 M, 0.0 % | SwapFree: 943 M, 8.8 % 2018-07-06 Fri 03:04:37 MemAvailable (0 MiB, 0.0 %) < mem_min_sigterm (588 MiB, 10.0 %) SwapFree (943 MiB, 8.8 %) < swap_min_sigterm (1076 MiB, 10.0 %) Preventing OOM: trying to send the SIGTERM signal to tail, Pid: 14636, Badness: 777, VmRSS: 4446 MiB, VmSwap: 8510 MiB Success MemAvail: 173 M, 2.9 % | SwapFree: 3363 M, 31.3 % MemAvail: 4700 M, 80.0 % | SwapFree: 8986 M, 83.5 % MemAvail: 4668 M, 79.4 % | SwapFree: 8997 M, 83.6 % MemAvail: 4610 M, 78.5 % | SwapFree: 9024 M, 83.9 %
环境要求
Linux 3.14+
Python 3.4+
注意:该程序尚未发布稳定版本,请谨慎使用。
Nohang 详细介绍 Nohang 是一个 Linux 守护程序,也是一个高度可配置的 OOM(内存溢出)阻止工具,适用于 Linux 系统,能够有效地防止内存不足的情况。 部分功能特性 具有良好注释的配置文件,配置方面(配置中有 38 个参数) 可以将 SIGKILL 和 SIGTERM 作为发送给 victim 的信号 支持 zram(使用 mem_used_total 作为触发器) 可定制
问题内容: 我正在编写Linux守护程序。我发现了两种方法。 通过调用和设置守护进程。 使用运行程序。 哪个是正确的方法? 问题答案: 来自http://www.steve.org.uk/Reference/Unix/faq_2.html#SEC16 以下是成为守护程序的步骤: 1. fork(),以便父级可以退出,这会将控制权返回给命令行或shell来调用您的程序。需要执行此步骤,以确保新流程不
本文向大家介绍linux下的守护进程,包括了linux下的守护进程的使用技巧和注意事项,需要的朋友参考一下 Linux下的常驻进程的作用不可忽略,但这里面的问题也不能忽略,怎么启动进程,怎么结束进程,怎么在进程挂掉之后重启进程都要设计的合理。下面看一个shell控制的php常驻进程的例子。 不废话,直接捞干货,上代码,通过代码来讲解更容易理解: 只里面有几个要强调的地方: 我用这个shell去调用
问题内容: 在Linux中,我想添加一个无法停止且监视文件系统更改的守护程序。如果检测到任何更改,则应在启动控制台的路径上加上换行符。 我已经准备好更改代码的文件系统了,但是我不知道如何创建守护程序。 我的代码来自这里:http : //www.yolinux.com/TUTORIALS/ForkExecProcesses.html 叉后该怎么办? 问题答案: 在Linux中,我想添加一个无法停止
本文向大家介绍python实现守护进程、守护线程、守护非守护并行,包括了python实现守护进程、守护线程、守护非守护并行的使用技巧和注意事项,需要的朋友参考一下 守护进程 1、守护子进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allow
问题内容: 因此,我有一个在Linux系统上运行的守护程序,我想要记录其活动:日志。问题是,完成此任务的“最佳”方法是什么? 我的第一个想法是简单地打开一个文件并将其写入。 用这种方式记录日志有天生的错误吗?有没有更好的方法,例如Linux内置的某些框架? 问题答案: Unix长期以来一直使用一种称为syslog的特殊日志记录框架。输入您的外壳 您将获得C接口的帮助。 一些 例子
在Linux中,我想添加一个无法停止的守护进程,它监视文件系统的更改。如果检测到任何更改,它应该写入启动控制台的路径以及换行符。 我已经准备好了更改文件系统的代码,但是我不知道如何创建守护进程。 我的密码是:http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html 叉子用完后怎么办?
本文向大家介绍详解Docker守护进程的配置及日志,包括了详解Docker守护进程的配置及日志的使用技巧和注意事项,需要的朋友参考一下 安装Docker并启动,在Docker所在的服务器上,就一直有一个Docker守护进程dockerd在运行。 默认手工启动Docker守护进程,只需要执行如下命令: 停止上述进程,只需要CTRL+C键盘命令。 1. dockerd的配置文件 如果要使用非默认配置参