This changelog is outdated. It will be updated later.
- Added new CLI options:
- -v, --version
- -m, --memload
- --monitor
- --tasks
- --check-config
- Possible process crashes are fixed:
- Fixed crash at startup due to
UnicodeDecodeError
on some systems - Handled
UnicodeDecodeError
if victim name consists of many unicode characters (rfjakob/earlyoom#110) - Fixed process crash before performing corrective actions if Python 3.4 or lower are used to interpret nohang
- Fixed crash at startup due to
- Improve output:
- Display
oom_score
,oom_score_adj
,Ancestry
,EUID
,State
,VmSize
,RssAnon
,RssFile
,RssShmem
,CGroup_v1
,CGroup_v2
,Realpath
,Cmdline
andLifetime
of the victim in corrective action reports - Added memory report interval
- Added delta memory info (the rate of change of available memory)
- Print statistics on corrective actions after each corrective action
- Added ability to print a process table before each corrective action
- Added the ability to log into a separate file
- Display
- Improved GUI warnings:
- Reduced the idle time of the daemon in the process of launching a notification
- All notify-send calls are made using the
nohang_notify_helper
script, in which all timeouts are handled (not anymore: nohang_notify_helper has been removed) - Native python implementation of
env
search without runningps
to notify all users if nohang started with UID=0.
- Improved modifing badness via matching with regular expressions:
- Added the ability to set many different
badness_adj
for processes depending on the matchingName
,CGroup_v1
,CGroup_v2
,cmdline
,realpath
,environ
andEUID
with the specified regular expressions (issue #11) - Fix: replace
re.fullmatch()
byre.search()
- Added the ability to set many different
- Reduced memory usage:
- Reduced memory usage and startup time (using
sys.argv
instead ofargparse
) - Reduced memory usage with
mlockall()
usingMCL_ONFAULT
(rfjakob/earlyoom#112)
- Reduced memory usage and startup time (using
- Lock all memory by default using mlockall()
- Added new tools:
oom-sort
psi-top
psi2log
- Improve poll rate algorithm
- Fixed Makefile for installation on CentOS 7 (remove gzip
-k
option). - Added
max_post_sigterm_victim_lifetime
option: send SIGKILL to the victim if it doesn't respond to SIGTERM for a certain time - Added
post_kill_exe
option (the ability to run any command after killing a victim) - Added
warning_exe
option (the ability to run any command instead of GUI low memory warnings) - Added
victim_cache_time
option - Improved victim search algorithm (do it ~30% faster) (rfjakob/earlyoom#114)
- Improved limiting
oom_score_adj
: now it can works with UID != 0 - Fixed conf parsing: use of
line.partition('=')
instead ofline.split('=')
- Removed self-defense options from the config, use systemd unit scheduling instead
- Added the ability to send any signal instead of SIGTERM for processes with certain names
- Added support for
PSI
- Recheck memory levels after finding a victim to prevent killing innocent victims in some cases (issue #20)
- Now one corrective action to one victim can be applied only once.
- Ignoring zram by default, checking for this has become optional.
- Improved user input validation
- Improved documentation
- Handle signals (SIGTERM, SIGINT, SIGQUIT, SIGHUP), print total stat by corrective actions at exit.