[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#39283] [PATCH] gnu: Add earlyoom.
From: |
Maxim Cournoyer |
Subject: |
[bug#39283] [PATCH] gnu: Add earlyoom. |
Date: |
Fri, 31 Jan 2020 02:43:44 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hello Pkill -9,
Pkill -9 <address@hidden> writes:
> * gnu/packages/linux.scm (earlyoom): New variable.
> ---
> gnu/packages/linux.scm | 37 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 37 insertions(+)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index e5cc773ecc..892906cc70 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -6215,3 +6215,40 @@ the Linux kernel, C standard library, and libdl (for
> dynamic linking). While
> ELL is designed to be efficient and compact enough for use on embedded Linux
> platforms, it is not limited to resource-constrained systems.")
> (license license:lgpl2.1+)))
> +
> +(define-public earlyoom
> + (package
> + (name "earlyoom")
> + (version "1.3")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/rfjakob/earlyoom.git")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0fwbx0y80nqgkxrc9kf9j3iwa0wbps2jmqir3pgqbc2cj0wjh0lr"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:make-flags `("CC=gcc"
> + ,(string-append "DESTDIR="
> + (assoc-ref %outputs "out"))
> + "PREFIX=")
> + #:tests? #f ;; no tests
> + #:phases (modify-phases
> + %standard-phases
> + (delete 'configure)
> + (add-after 'install 'remove-systemd-service
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let ((out (assoc-ref outputs "out")))
> + (delete-file-recursively
> + (string-append out "/etc/systemd")))
> + #t)))))
> + (home-page "https://github.com/rfjakob/earlyoom")
> + (synopsis "Automatically kill processes in low-memory situations")
> + (description "Earlyoom checks the amount of available memory and free swap
> +up to 10 times a second (less often if there is a lot of free memory). By
> +default if both are below 10%, it will kill the largest process (highest
> +oom_score). The percentage value is configurable via command line
> arguments.")
> + (license license:expat)))
I happened to have prepared earlyoom recently, but delayed its inclusion
due to finishing a service for it (only the doc remains).
I'm attaching it. My version seems slightly more complete (I generate
the doc and run the tests). If you don't have an objection I could push
it to master.
0001-gnu-Add-earlyoom.patch
Description: Text Data
Then there is a Shepherd service for convenience. I haven't tried all
the switches, but I presume it'd work, given that they seem to be
translated correctly into earyloom's command line options (there's a
unit test for it).
0002-gnu-Add-earlyoom-service-type.patch
Description: Text Data
And then enjoy your hang free system :-)
Thank you,
Maxim
- [bug#39283] [PATCH] gnu: Add earlyoom.,
Maxim Cournoyer <=