Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alinuxperson/oom-notifier
A libray/program that gives information about oom scores
https://github.com/alinuxperson/oom-notifier
library linux linux-kernel module oom process processes program python python-library python-module python-program python-script script
Last synced: 4 months ago
JSON representation
A libray/program that gives information about oom scores
- Host: GitHub
- URL: https://github.com/alinuxperson/oom-notifier
- Owner: ALinuxPerson
- License: gpl-3.0
- Created: 2020-06-09T08:08:01.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-04T12:06:50.000Z (about 3 years ago)
- Last Synced: 2024-03-14T22:10:12.235Z (11 months ago)
- Topics: library, linux, linux-kernel, module, oom, process, processes, program, python, python-library, python-module, python-program, python-script, script
- Language: Python
- Size: 62.5 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# oom-notifier
[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)
[![PyPI download week](https://img.shields.io/pypi/dw/oom-notifier.svg)](https://pypi.python.org/pypi/oom-notifier/)
[![PyPI version shields.io](https://img.shields.io/pypi/v/oom-notifier.svg)](https://pypi.python.org/pypi/oom-notifier/)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/oom-notifier.svg)](https://pypi.python.org/pypi/oom-notifier/)![product-library](https://i.imgur.com/9ztbONM.png) ![product-notfication](https://i.imgur.com/6oWvzV4.png) ![product-wall](https://i.imgur.com/Xps47Xa.png)
oom-notifier is a program and a library used to track oom scores for Linux.
## Description
oom-notifier gets the oom score of each process by getting the `/proc//oom_score` value. As a program, it tracks
the oom scores of each process (by default) every 5 seconds and the threshold is set to 1000. If you want to change these
values, refer to the configuration header below.But what is an `oom_score`?
An `oom_score` is basically a score assigned to a process by the Linux kernel which is the likelihood that a process will
be terminated in case a computer is out of memory. If a process oom score is high, it means it will be one of the first processes to be killed in case
of low memory resources. If a process oom score is low, it means it will be the least likely to be killed in case of low memory
resources.## Getting Started
### Dependencies
* Any Linux-based distribution
* Python>=3.6
* pip### Installing
1. Install `oom-notifier` using pip.
```bash
$ pip install oom-notifier
```### Usage
As a library:
```python
import oom_notifieroom = oom_notifier.OOM()
# to get all pids and oom scores of each process, use this:
all_oom_scores = oom.info # this is a dictionary# to get the maximum oom score of all processes, use this:
max_oom_score = oom.max # this is also a dictionary
```
As a program:
```bash
$ oom-notifier # launches oom-notifier in the background
```### Configuration
In `~/.config/oom-notifier/config.ini`:
```ini
[Main]
; this sets the threshold to where oom-notifier will trigger a notification if it passes this value
threshold =
; this sets the time where oom-notifier will wait to refresh the oom-scores
wait_time =
```## Help
#### **`oom-notifier` only displays in the command line**
This usually means that the dbus can't contact the notification service (as, internally, `dbus-python` raises an exception incase of failure).
AFAIK, most of the time the reason this happens is because the notification service isn't installed.In XFCE:
Check if `xfce4-notifyd` is running in the background.
```bash
$ ps cax | grep xfce4-notifyd
```
if there's no output, it means xfce4-notifyd isn't running and means it isn't started or isn't installed. If it isn't installed,
you can install using your distribution's package manager.## License
This project is licensed under the [GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/) License - see the [LICENSE](https://github.com/ALinuxPerson/oom-notifier/blob/master/LICENSE) file for details