fix Makefile and .service

This commit is contained in:
Alexey Avramov 2019-07-23 01:12:28 +09:00
parent b979fa83d6
commit 80b6a49fd8
4 changed files with 42 additions and 42 deletions

View File

@ -1,51 +1,54 @@
PREFIX = /
DESTDIR ?=
BINDIR ?= /usr/local/bin
SYSTEMDUNITDIR ?= /etc/systemd/system
CONFDIR ?= /etc
MANDIR ?= /usr/share/man/man1
LOGDIR ?= /var/log
all:
@ echo "Use: make install, make systemd, make uninstall"
install:
install -d $(DESTDIR)/$(PREFIX)/usr/sbin
install -m0755 ./nohang $(DESTDIR)/$(PREFIX)/usr/sbin/nohang
install -m0755 ./nohang_notify_helper $(DESTDIR)/$(PREFIX)/usr/sbin/nohang_notify_helper
install -d $(DESTDIR)$(BINDIR)
install -m0755 ./nohang $(DESTDIR)$(BINDIR)/nohang
install -m0755 ./nohang_notify_helper $(DESTDIR)$(BINDIR)/nohang_notify_helper
install -m0755 ./oom-sort $(DESTDIR)$(BINDIR)/oom-sort
install -m0755 ./psi-top $(DESTDIR)$(BINDIR)/psi-top
install -m0755 ./psi-monitor $(DESTDIR)$(BINDIR)/psi-monitor
install -d $(DESTDIR)/$(PREFIX)/usr/bin
install -m0755 ./oom-sort $(DESTDIR)/$(PREFIX)/usr/bin/oom-sort
install -m0755 ./psi-top $(DESTDIR)/$(PREFIX)/usr/bin/psi-top
install -m0755 ./psi-monitor $(DESTDIR)/$(PREFIX)/usr/bin/psi-monitor
install -d $(DESTDIR)/$(PREFIX)/etc/nohang
install -d $(DESTDIR)$(CONFDIR)/nohang
-git describe --tags --long --dirty > ./version
-install -m0644 ./version $(DESTDIR)/$(PREFIX)/etc/nohang/version
-install -m0644 ./version $(DESTDIR)$(CONFDIR)/nohang/version
-rm -fvr ./version
install -m0644 ./nohang.conf $(DESTDIR)/$(PREFIX)/etc/nohang/nohang.conf
install -m0644 ./nohang.conf $(DESTDIR)/$(PREFIX)/etc/nohang/nohang.conf.default
install -m0644 ./nohang.conf $(DESTDIR)$(CONFDIR)/nohang/nohang.conf
install -m0644 ./nohang.conf $(DESTDIR)$(CONFDIR)/nohang/nohang.conf.default
install -d $(DESTDIR)/$(PREFIX)/etc/logrotate.d
install -m0644 ./nohang.logrotate $(DESTDIR)/$(PREFIX)/etc/logrotate.d/nohang
install -d $(DESTDIR)$(CONFDIR)/logrotate.d
install -m0644 ./nohang.logrotate $(DESTDIR)$(CONFDIR)/logrotate.d/nohang
install -d $(DESTDIR)/$(PREFIX)/usr/share/man/man1
gzip -c nohang.1 > $(DESTDIR)/$(PREFIX)/usr/share/man/man1/nohang.1.gz
gzip -c oom-sort.1 > $(DESTDIR)/$(PREFIX)/usr/share/man/man1/oom-sort.1.gz
install -d $(DESTDIR)$(MANDIR)
gzip -c nohang.1 > $(DESTDIR)$(MANDIR)/nohang.1.gz
gzip -c oom-sort.1 > $(DESTDIR)$(MANDIR)/oom-sort.1.gz
-install -d $(DESTDIR)/$(PREFIX)/lib/systemd/system
-install -m0644 ./nohang.service $(DESTDIR)/$(PREFIX)/lib/systemd/system/nohang.service
-chcon -t systemd_unit_file_t $(DESTDIR)/$(PREFIX)/lib/systemd/system/nohang.service
-install -d $(DESTDIR)$(SYSTEMDUNITDIR)
-install -m0644 ./nohang.service $(DESTDIR)$(SYSTEMDUNITDIR)/nohang.service
-chcon -t systemd_unit_file_t $(DESTDIR)$(SYSTEMDUNITDIR)/nohang.service
uninstall:
# 'make uninstall' must not fail with error if systemctl is unavailable or returns error
-systemctl disable nohang.service || true
rm -fv $(PREFIX)/usr/sbin/nohang
rm -fv $(PREFIX)/usr/sbin/nohang_notify_helper
rm -fv $(PREFIX)/usr/bin/oom-sort
rm -fv $(PREFIX)/usr/bin/psi-top
rm -fv $(PREFIX)/usr/bin/psi-monitor
rm -fv $(PREFIX)/usr/share/man/man1/nohang.1.gz
rm -fv $(PREFIX)/usr/share/man/man1/oom-sort.1.gz
rm -fv $(PREFIX)/lib/systemd/system/nohang.service
rm -fvr $(PREFIX)/etc/nohang/
rm -fvr $(PREFIX)/etc/logrotate.d/nohang
rm -fvr $(PREFIX)/var/log/nohang/
rm -fv $(DESTDIR)$(BINDIR)/nohang
rm -fv $(DESTDIR)$(BINDIR)/nohang_notify_helper
rm -fv $(DESTDIR)$(BINDIR)/oom-sort
rm -fv $(DESTDIR)$(BINDIR)/psi-top
rm -fv $(DESTDIR)$(BINDIR)/psi-monitor
rm -fv $(DESTDIR)$(MANDIR)/nohang.1.gz
rm -fv $(DESTDIR)$(MANDIR)/oom-sort.1.gz
rm -fv $(DESTDIR)$(SYSTEMDUNITDIR)/nohang.service
rm -fvr $(DESTDIR)$(CONFDIR)/nohang/
rm -fvr $(DESTDIR)$(CONFDIR)/logrotate.d/nohang
rm -fvr $(DESTDIR)$(LOGDIR)/nohang/
systemd:
-systemctl daemon-reload

4
nohang
View File

@ -2300,7 +2300,7 @@ else:
if os.path.exists('./nohang_notify_helper'):
notify_helper_path = './nohang_notify_helper'
else:
notify_helper_path = '/usr/sbin/nohang_notify_helper'
notify_helper_path = 'nohang_notify_helper'
@ -2396,7 +2396,7 @@ for s in mem_list:
if mem_list_names[2] != 'MemAvailable':
errprint('WARNING: Your Linux kernel is too old, Linux 3.14+ requied')
# exit(1)
exit(1)
swap_total_index = mem_list_names.index('SwapTotal')
swap_free_index = swap_total_index + 1

View File

@ -1,20 +1,15 @@
[Unit]
Description=Highly configurable OOM prevention daemon
After=sysinit.target
Documentation=man:nohang(1) https://github.com/hakavlad/nohang
[Service]
ExecStart=/usr/sbin/nohang --config /etc/nohang/nohang.conf
ExecStart=/usr/local/bin/nohang --config /etc/nohang/nohang.conf
Slice=nohang.slice
Restart=always
KillMode=mixed
MemoryMax=50M
MemoryMax=100M
TasksMax=50
Nice=-20
IOSchedulingClass=1
IOSchedulingPriority=0
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=99
Nice=-15
CPUSchedulingResetOnFork=true
[Install]

View File

@ -1,3 +1,5 @@
.TH oom-sort 1
.SH NAME
oom-sort \- sort processes by oom_score