Initial commit
This commit is contained in:
66
README.md
Normal file
66
README.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Reniced
|
||||
|
||||
Сервис автоматического изменения приоритета исполнения процессов. Работает по принципу периодиеского вылавливания списка
|
||||
запущенных процессов и изменения приоритета "проклятым" и (если получится) "благословлённым" процессам.
|
||||
|
||||
## Зачем это нужно?
|
||||
|
||||
В некоторых случаях необходимо, чтобы система обладала достаточной интерактивностью, чтобы, например, нормально работала
|
||||
видеосвязь в таких мессенджерах, как VK Teams.
|
||||
|
||||
## Как это установить и заставить работать?
|
||||
|
||||
Для установки нам понадобятся пакеты с перлом и перловым модулем JSON::XS из текущего дистрибутива линукса, например, их
|
||||
можно уставить командами:
|
||||
|
||||
```bash
|
||||
apt-get install perl perl-json-xs
|
||||
```
|
||||
|
||||
```bash
|
||||
dnf install perl perl-json-xs
|
||||
```
|
||||
|
||||
Как заставить это работать?
|
||||
|
||||
Вначале надо скопировать конфиг из **config_example.json** в **~/.reniced.json** и далее подправить все необходимые
|
||||
значения в нём.
|
||||
|
||||
После настройки списка процессов и приоритетов их работы, можно запускать сервис как unix daemon или как обычный
|
||||
процесс. Второй вариант нужен для запуска сервиса через systemd.
|
||||
|
||||
Если reniced планируется запускать от рута (uid=0), то конфиг будет находиться не в **~/.reniced.json**, а в
|
||||
**/etc/reniced.json**.
|
||||
|
||||
## Caveats
|
||||
|
||||
### Для MacOS
|
||||
|
||||
В свежих выпусках Mac OS нет возможности запускать сервисы от пользователя с uid=0, при запуске системы. Во всяком
|
||||
случае без танцев с бубнами и отключения "защиты" системных файлов от модификации этого не сделать. Поэтому придётся при
|
||||
запуске системы ручками писать
|
||||
|
||||
```bash
|
||||
sudo reniced
|
||||
```
|
||||
|
||||
в каталоге с reniced. Кроме того под MacOS конфиг всегда ищется в ~/.reniced.json
|
||||
|
||||
В линуксах такой проблемы пока нет (но возможно будет, когда придут "атомарные" обДНОвления).
|
||||
|
||||
### Для Linux
|
||||
|
||||
В линуксах есть такая фича, как namespaces. Так вот, без особых приседаний и раскачиваний, нет возможности собрать
|
||||
список процессов не из текущего namespace-а. Так что скорее всего в некоторых контейнерных системах изоляции окружений
|
||||
возможны варианты, при которых у изолированных таким образом процессов не будет меняться приоритет исполнения.
|
||||
|
||||
### Общего характера
|
||||
|
||||
По понятным причинам, нет возможности изменять niceness до отрицательных величин, если процесс reniced запущен от
|
||||
обычного пользователя (uid > 0).
|
||||
|
||||
При запуске reniced от обычного пользователя, niceness процесса может идти только в плюс. То есть процесс с nice=11, не
|
||||
получится сделать с nice=9, например (без перезапуска процесса, конечно). Зато от суперпользователя такое работает.
|
||||
|
||||
## Special thans
|
||||
Авторам VK Teams. Без их мессенджера, с его "недостатками", не было бы этого костыля.
|
||||
Reference in New Issue
Block a user