fixes
This commit is contained in:
parent
d97338a8eb
commit
6ca23b4bfe
4
Makefile
4
Makefile
@ -11,7 +11,6 @@ install:
|
|||||||
|
|
||||||
install -d $(DESTDIR)/$(PREFIX)/usr/bin
|
install -d $(DESTDIR)/$(PREFIX)/usr/bin
|
||||||
install -m0755 ./oom-sort $(DESTDIR)/$(PREFIX)/usr/bin/oom-sort
|
install -m0755 ./oom-sort $(DESTDIR)/$(PREFIX)/usr/bin/oom-sort
|
||||||
install -m0755 ./oom-trigger $(DESTDIR)/$(PREFIX)/usr/bin/oom-trigger
|
|
||||||
|
|
||||||
install -d $(DESTDIR)/$(PREFIX)/etc/nohang
|
install -d $(DESTDIR)/$(PREFIX)/etc/nohang
|
||||||
install -m0644 ./nohang.conf $(DESTDIR)/$(PREFIX)/etc/nohang/$(VERSION)
|
install -m0644 ./nohang.conf $(DESTDIR)/$(PREFIX)/etc/nohang/$(VERSION)
|
||||||
@ -22,7 +21,6 @@ install:
|
|||||||
install -d $(DESTDIR)/$(PREFIX)/usr/share/man/man1
|
install -d $(DESTDIR)/$(PREFIX)/usr/share/man/man1
|
||||||
gzip -k -c nohang.1 > $(DESTDIR)/$(PREFIX)/usr/share/man/man1/nohang.1.gz
|
gzip -k -c nohang.1 > $(DESTDIR)/$(PREFIX)/usr/share/man/man1/nohang.1.gz
|
||||||
gzip -k -c oom-sort.1 > $(DESTDIR)/$(PREFIX)/usr/share/man/man1/oom-sort.1.gz
|
gzip -k -c oom-sort.1 > $(DESTDIR)/$(PREFIX)/usr/share/man/man1/oom-sort.1.gz
|
||||||
gzip -k -c oom-trigger.1 > $(DESTDIR)/$(PREFIX)/usr/share/man/man1/oom-trigger.1.gz
|
|
||||||
|
|
||||||
install -d $(DESTDIR)/$(PREFIX)/lib/systemd/system
|
install -d $(DESTDIR)/$(PREFIX)/lib/systemd/system
|
||||||
install -m0644 ./nohang.service $(DESTDIR)/$(PREFIX)/lib/systemd/system/nohang.service
|
install -m0644 ./nohang.service $(DESTDIR)/$(PREFIX)/lib/systemd/system/nohang.service
|
||||||
@ -33,10 +31,8 @@ uninstall:
|
|||||||
rm -fv $(PREFIX)/usr/sbin/nohang
|
rm -fv $(PREFIX)/usr/sbin/nohang
|
||||||
rm -fv $(PREFIX)/usr/sbin/nohang_notify_helper
|
rm -fv $(PREFIX)/usr/sbin/nohang_notify_helper
|
||||||
rm -fv $(PREFIX)/usr/bin/oom-sort
|
rm -fv $(PREFIX)/usr/bin/oom-sort
|
||||||
rm -fv $(PREFIX)/usr/bin/oom-trigger
|
|
||||||
rm -fv $(PREFIX)/usr/share/man/man1/nohang.1.gz
|
rm -fv $(PREFIX)/usr/share/man/man1/nohang.1.gz
|
||||||
rm -fv $(PREFIX)/usr/share/man/man1/oom-sort.1.gz
|
rm -fv $(PREFIX)/usr/share/man/man1/oom-sort.1.gz
|
||||||
rm -fv $(PREFIX)/usr/share/man/man1/oom-trigger.1.gz
|
|
||||||
rm -fv $(PREFIX)/lib/systemd/system/nohang.service
|
rm -fv $(PREFIX)/lib/systemd/system/nohang.service
|
||||||
rm -fvr $(PREFIX)/etc/nohang/
|
rm -fvr $(PREFIX)/etc/nohang/
|
||||||
rm -fvr $(PREFIX)/etc/logrotate.d/nohang
|
rm -fvr $(PREFIX)/etc/logrotate.d/nohang
|
||||||
|
@ -229,7 +229,7 @@ Please create [issues](https://github.com/hakavlad/nohang/issues). Use cases, fe
|
|||||||
- [x] Improved GUI warnings:
|
- [x] Improved GUI warnings:
|
||||||
- [x] Reduced the idle time of the daemon in the process of launching a notification
|
- [x] Reduced the idle time of the daemon in the process of launching a notification
|
||||||
- [x] All notify-send calls are made using the `nohang_notify_helper` script, in which all timeouts are handled
|
- [x] All notify-send calls are made using the `nohang_notify_helper` script, in which all timeouts are handled
|
||||||
- [x] Native python implementation of `env` search without running `ps` to notify users if nohang started with UID=0.
|
- [x] Native python implementation of `env` search without running `ps` to notify all users if nohang started with UID=0.
|
||||||
- [x] Messages are sent to the helper via a temporary file in `/dev/shm`
|
- [x] Messages are sent to the helper via a temporary file in `/dev/shm`
|
||||||
- [ ] Deduplication of frequently repeated identical notifications (for example, if the victim does not respond to SIGTERM)
|
- [ ] Deduplication of frequently repeated identical notifications (for example, if the victim does not respond to SIGTERM)
|
||||||
- [x] Improved modifing badness via matching with regular expressions:
|
- [x] Improved modifing badness via matching with regular expressions:
|
||||||
|
34
nohang
34
nohang
@ -74,6 +74,8 @@ def log(*msg):
|
|||||||
"""
|
"""
|
||||||
print(*msg)
|
print(*msg)
|
||||||
if separate_log:
|
if separate_log:
|
||||||
|
# need fix: TypeError: not all arguments converted during string
|
||||||
|
# formatting
|
||||||
info(*msg)
|
info(*msg)
|
||||||
|
|
||||||
|
|
||||||
@ -674,7 +676,6 @@ def send_notify_etc(pid, name, command):
|
|||||||
command.replace('&', '*')
|
command.replace('&', '*')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# write() -> wrinte_notify(title, body)
|
# write() -> wrinte_notify(title, body)
|
||||||
|
|
||||||
write('{}\x00{}'.format(title, body))
|
write('{}\x00{}'.format(title, body))
|
||||||
@ -1062,8 +1063,6 @@ def implement_corrective_action(signal):
|
|||||||
|
|
||||||
notif = True
|
notif = True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
log(mem_info)
|
log(mem_info)
|
||||||
|
|
||||||
pid, victim_badness, name = find_victim(print_proc_table)
|
pid, victim_badness, name = find_victim(print_proc_table)
|
||||||
@ -1156,17 +1155,20 @@ def implement_corrective_action(signal):
|
|||||||
sig_dict[signal], name)
|
sig_dict[signal], name)
|
||||||
|
|
||||||
if signal is SIGKILL and post_kill_exe != '':
|
if signal is SIGKILL and post_kill_exe != '':
|
||||||
os.system(
|
|
||||||
post_kill_exe.replace(
|
cmd = post_kill_exe.replace('$PID', pid).replace(
|
||||||
'$PID', pid).replace(
|
'$NAME', pid_to_name(pid))
|
||||||
'$NAME', pid_to_name(pid)
|
|
||||||
)
|
print('exe:', cmd)
|
||||||
)
|
err = os.system(cmd)
|
||||||
|
|
||||||
|
print('post_kill_exe exit status:', err)
|
||||||
|
|
||||||
if gui_notifications:
|
if gui_notifications:
|
||||||
|
|
||||||
# min delay after same notification
|
# min delay after same notification
|
||||||
# все не так. От этого вообще пол дедупликация . терминация один раз покажется при любом раскладе.
|
# все не так. От этого вообще пол дедупликация . терминация
|
||||||
|
# один раз покажется при любом раскладе.
|
||||||
delay_after_same_notify = 1
|
delay_after_same_notify = 1
|
||||||
|
|
||||||
x = dick['v']
|
x = dick['v']
|
||||||
@ -1186,18 +1188,9 @@ def implement_corrective_action(signal):
|
|||||||
if dt < delay_after_same_notify:
|
if dt < delay_after_same_notify:
|
||||||
notif = False
|
notif = False
|
||||||
|
|
||||||
|
|
||||||
if notif:
|
if notif:
|
||||||
send_notify(signal, name, pid)
|
send_notify(signal, name, pid)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
response_time = time() - time0
|
response_time = time() - time0
|
||||||
send_result = 'no such process; response time: {} ms'.format(
|
send_result = 'no such process; response time: {} ms'.format(
|
||||||
@ -2335,7 +2328,8 @@ while True:
|
|||||||
if warn_timer > min_time_between_warnings:
|
if warn_timer > min_time_between_warnings:
|
||||||
t0 = time()
|
t0 = time()
|
||||||
send_notify_warn()
|
send_notify_warn()
|
||||||
log(time() - t0, 'send notify warning time')
|
# caused log err
|
||||||
|
log(str(time() - t0) + ' | send notify warning time')
|
||||||
warn_timer = 0
|
warn_timer = 0
|
||||||
|
|
||||||
# SLEEP BETWEEN MEM CHECKS
|
# SLEEP BETWEEN MEM CHECKS
|
||||||
|
@ -7,9 +7,9 @@ Documentation=man:nohang(1) https://github.com/hakavlad/nohang
|
|||||||
ExecStart=/usr/sbin/nohang --config /etc/nohang/nohang.conf
|
ExecStart=/usr/sbin/nohang --config /etc/nohang/nohang.conf
|
||||||
Slice=nohang.slice
|
Slice=nohang.slice
|
||||||
Restart=always
|
Restart=always
|
||||||
MemoryMax=100M
|
MemoryMax=20M
|
||||||
TasksMax=100
|
TasksMax=10
|
||||||
OOMScoreAdjust=-10
|
OOMScoreAdjust=-5
|
||||||
Nice=-20
|
Nice=-20
|
||||||
IOSchedulingClass=1
|
IOSchedulingClass=1
|
||||||
IOSchedulingPriority=0
|
IOSchedulingPriority=0
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
.TH oom-trigger 1
|
|
||||||
.SH NAME
|
|
||||||
oom-trigger \- interactive OOM trigger
|
|
Loading…
Reference in New Issue
Block a user