попытка исправить баг в уведомлениях
This commit is contained in:
parent
455b16aedd
commit
d98b0d7d02
@ -56,7 +56,7 @@ https://2ch.hk/s/res/2310304.html#2311483, https://archive.li/idixk
|
|||||||
- возможность задания `oom_score_min` для предотвращения убийства невиновных
|
- возможность задания `oom_score_min` для предотвращения убийства невиновных
|
||||||
- verbosity: опциональность печати параметров конфига при старте программы, опциональность печати результатов проверки памяти и времени между проверками памяти
|
- verbosity: опциональность печати параметров конфига при старте программы, опциональность печати результатов проверки памяти и времени между проверками памяти
|
||||||
- возможность предотвращения избыточного убийства процессов с помощью задания миниального `oom_score` для убиваемых процессов и установка минимальной задержки просле отправки сигналов (параметры конфига `min_delay_after_sigkill` и `min_delay_after_sigterm`)
|
- возможность предотвращения избыточного убийства процессов с помощью задания миниального `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` страницы
|
- наличие `man` страницы
|
||||||
- наличие установщика для пользователей `systemd`
|
- наличие установщика для пользователей `systemd`
|
||||||
- протестировано на `Debian 9 x86_64`, `Debian 8 i386`, `Fedora 28 x86_64`
|
- протестировано на `Debian 9 x86_64`, `Debian 8 i386`, `Fedora 28 x86_64`
|
||||||
|
16
nohang
16
nohang
@ -206,7 +206,7 @@ def find_victim_and_send_signal(signal):
|
|||||||
)[2:-1].split(' '))
|
)[2:-1].split(' '))
|
||||||
# отправляем уведомление всем залогиненным юзерам
|
# отправляем уведомление всем залогиненным юзерам
|
||||||
for i in users_set:
|
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)
|
i)
|
||||||
os.system(root_notify_command + info)
|
os.system(root_notify_command + info)
|
||||||
else:
|
else:
|
||||||
@ -368,11 +368,8 @@ if 'print_mem_check_results' in config_dict:
|
|||||||
elif print_mem_check_results == 'False':
|
elif print_mem_check_results == 'False':
|
||||||
print_mem_check_results = False
|
print_mem_check_results = False
|
||||||
else:
|
else:
|
||||||
print(
|
print('Invalid print_mem_check_results value {} (should be True or False)\nExit'.format(
|
||||||
'Invalid print_mem_check_results value {} (should be True or False)\nExit'.format(
|
print_mem_check_results))
|
||||||
print_mem_check_results
|
|
||||||
)
|
|
||||||
)
|
|
||||||
exit()
|
exit()
|
||||||
else:
|
else:
|
||||||
print('print_mem_check_results not in config\nExit')
|
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':
|
elif print_sleep_periods == 'False':
|
||||||
print_sleep_periods = False
|
print_sleep_periods = False
|
||||||
else:
|
else:
|
||||||
print(
|
print('Invalid print_sleep_periods value {} (should be True or False)\nExit'.format(
|
||||||
'Invalid print_sleep_periods value {} (should be True or False)\nExit'.format(
|
print_sleep_periods))
|
||||||
print_sleep_periods
|
|
||||||
)
|
|
||||||
)
|
|
||||||
exit()
|
exit()
|
||||||
else:
|
else:
|
||||||
print('print_sleep_periods not in config\nExit')
|
print('print_sleep_periods not in config\nExit')
|
||||||
|
13
nohang.conf
13
nohang.conf
@ -22,8 +22,9 @@ print_mem_check_results = True
|
|||||||
Печатать ли время сна между проверками памяти и после отправки
|
Печатать ли время сна между проверками памяти и после отправки
|
||||||
сигналов. Можно установить в значение True для дебага.
|
сигналов. Можно установить в значение True для дебага.
|
||||||
Допустимые значения: True и False
|
Допустимые значения: 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_swap = 1
|
||||||
rate_zram = 1
|
rate_zram = 0.5
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
@ -114,13 +115,13 @@ zram_max_sigkill = 60 %
|
|||||||
|
|
||||||
Значение должно быть целым числом из диапазона [0; 1000]
|
Значение должно быть целым числом из диапазона [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
|
min_delay_after_sigkill = 3
|
||||||
|
|
||||||
Процессы браузера chromium обычно имеют oom_score_adj
|
Процессы браузера chromium обычно имеют oom_score_adj
|
||||||
@ -139,7 +140,7 @@ decrease_oom_score_adj = True
|
|||||||
|
|
||||||
Допустимые значения - целые числа из диапазона [0; 1000]
|
Допустимые значения - целые числа из диапазона [0; 1000]
|
||||||
|
|
||||||
oom_score_adj_max = 20
|
oom_score_adj_max = 50
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user