diff --git a/README.md b/README.md index 95cd811..bea4181 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ https://2ch.hk/s/res/2310304.html#2311483, https://archive.li/idixk - возможность задания `oom_score_min` для предотвращения убийства невиновных - verbosity: опциональность печати параметров конфига при старте программы, опциональность печати результатов проверки памяти и времени между проверками памяти - возможность предотвращения избыточного убийства процессов с помощью задания миниального `oom_score` для убиваемых процессов и установка минимальной задержки просле отправки сигналов (параметры конфига `min_delay_after_sigkill` и `min_delay_after_sigterm`) -- возможность показа десктопных уведомлений c помощью notify-send, с показом сигнала (SIGTERM или SIGKILL), который отправлен процессу, а также Pid, oom_score, VmRSS, VmSwap, которыми обладал процесс перед получением сигнала. +- возможность показа десктопных уведомлений c помощью `notify-send`, с показом сигнала (`SIGTERM` или `SIGKILL`), который отправлен процессу, а также `Pid`, `oom_score`, `VmRSS`, `VmSwap`, которыми обладал процесс перед получением сигнала. - наличие `man` страницы - наличие установщика для пользователей `systemd` - протестировано на `Debian 9 x86_64`, `Debian 8 i386`, `Fedora 28 x86_64` diff --git a/nohang b/nohang index cec3c30..b50d8e2 100755 --- a/nohang +++ b/nohang @@ -206,7 +206,7 @@ def find_victim_and_send_signal(signal): )[2:-1].split(' ')) # отправляем уведомление всем залогиненным юзерам for i in users_set: - root_notify_command = 'DISPLAY=:0.0 sudo -u {} notify-send "Nohang tried to prevent OOM" '.format( + root_notify_command = 'DISPLAY=:0 sudo -u {} notify-send "Nohang tried to prevent OOM" '.format( i) os.system(root_notify_command + info) else: @@ -368,11 +368,8 @@ if 'print_mem_check_results' in config_dict: elif print_mem_check_results == 'False': print_mem_check_results = False else: - print( - 'Invalid print_mem_check_results value {} (should be True or False)\nExit'.format( - print_mem_check_results - ) - ) + print('Invalid print_mem_check_results value {} (should be True or False)\nExit'.format( + print_mem_check_results)) exit() else: print('print_mem_check_results not in config\nExit') @@ -386,11 +383,8 @@ if 'print_sleep_periods' in config_dict: elif print_sleep_periods == 'False': print_sleep_periods = False else: - print( - 'Invalid print_sleep_periods value {} (should be True or False)\nExit'.format( - print_sleep_periods - ) - ) + print('Invalid print_sleep_periods value {} (should be True or False)\nExit'.format( + print_sleep_periods)) exit() else: print('print_sleep_periods not in config\nExit') @@ -765,7 +759,7 @@ if print_config: decrease_oom_score_adj, decrease_res )) if decrease_oom_score_adj: - print('oom_score_adj_max: {}'.format(oom_score_adj_max)) + print('oom_score_adj_max: {}'.format(oom_score_adj_max)) print('\nVI. DESKTOP NOTIFICATIONS') print('desktop_notifications: {}'.format(desktop_notifications)) diff --git a/nohang.conf b/nohang.conf index c1fe9d2..ad95417 100644 --- a/nohang.conf +++ b/nohang.conf @@ -22,8 +22,9 @@ print_mem_check_results = True Печатать ли время сна между проверками памяти и после отправки сигналов. Можно установить в значение True для дебага. Допустимые значения: True и False + (В этой ветке по дефолту True) -print_sleep_periods = False +print_sleep_periods = True ##################################################################### @@ -70,9 +71,9 @@ self_oom_score_adj = -1000 достаточно хорошо, успешно справляясь с резкими скачками потребления памяти. -rate_mem = 4 +rate_mem = 3 rate_swap = 1 -rate_zram = 1 +rate_zram = 0.5 ##################################################################### @@ -114,13 +115,13 @@ zram_max_sigkill = 60 % Значение должно быть целым числом из диапазона [0; 1000] -oom_score_min = 15 +oom_score_min = 20 Минимальная задержка после отправки соответствующих сигналов для предотвращения риска убийства сразу множества процессов. Должно быть неотрицательным числом. -min_delay_after_sigterm = 0.2 +min_delay_after_sigterm = 0.5 min_delay_after_sigkill = 3 Процессы браузера chromium обычно имеют oom_score_adj @@ -139,7 +140,7 @@ decrease_oom_score_adj = True Допустимые значения - целые числа из диапазона [0; 1000] -oom_score_adj_max = 20 +oom_score_adj_max = 50 #####################################################################