LINUX.ORG.RU
решено ФорумAdmin

Обновление пакета iptables заменяет iptables.service файл

 ,


0

1

Я внес изменения в некоторые .service файлы, для организации их нужного мне порядка запуска. Сейчас заметил, что обновление пакета iptables заменило файл iptables.service и все мои изменения стерлись.

Собственно вопрос, можно ли запретить обновлениям трогать .service файлы? Или мне что, надо постоянно отслеживать их изменения и восстанавливать нужный мне вид? Какие вообще есть варианты?

CentOS 8



Последнее исправление: samson_b (всего исправлений: 1)

Я внес изменения в некоторые .service файлы

А надо было делать systemctl edit name.service и вносить изменения в дроплет.

Какие вообще есть варианты?

Читать маны.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Спасибо за ответ!

У меня скриптами все настраивается и патчится, можно так-то коммандой «systemctl edit» зафиксировать текущее состояние service файлов, чтобы в дальнейшем из никто не трогал?

samson_b
() автор топика
Ответ на: комментарий от samson_b

Кажется я понял, надо просто покидать измененные service файлы в директорию /etc/systemd/system/

И они будут применяться, все эти пляски с «systemctl edit» не нужны.

В любом случае спасибо!

samson_b
() автор топика
Последнее исправление: samson_b (всего исправлений: 1)

systemctl edit не изменяет оригинальный файл, а создаёт что-то такого формата:

[dan@dan-desktop ~]$ cat /etc/systemd/system/mongodb.service.d/override.conf
[Service]
MemoryHigh=2G

Либо с опцией --full копирует изменённый юнит целиком в /etc. В мане всё расписано в первом приближении.

Прям как специально всё это придумали, чтобы юнит-файлы из пакетов кастомизировать, не ломая обновление :)

melkor217 ★★★★★
()
Ответ на: комментарий от FireFighter

А ты файлы юнитов правил в /usr/share?

Не, в CentOS 8 *.service файлы лежат в /usr/lib/systemd/system т.е. я некоторые из них просто скопировал в /etc/systemd/system, там пропатчил скриптом и забыл. Фишка в том, что при запуске сервиса, система сначала проверяет наличие соответствующего файла в /etc/systemd/system и использует, а если его там нет, смотрит уже в /usr/lib/systemd/system

Удобно сделали, CentOS меня не перестает удивлять :) Век живи - век учись.

samson_b
() автор топика
Ответ на: комментарий от samson_b

ого, вот это centos дает… а я думал везде так. оказывается это просто centos особенная.

mamkin_kakir
()
Ответ на: комментарий от samson_b

.service файлы лежат в /usr/lib/systemd/system

Да ты прав.

я некоторые из них просто скопировал в /etc/systemd/system

Не надо копировать, можно сделать systemctl edit unit и добавить / поменять только то, что нужно.

FireFighter ★★★
()
Последнее исправление: FireFighter (всего исправлений: 1)
Ответ на: комментарий от FireFighter

Не надо копировать, можно сделать systemctl edit unit и добавить / поменять только то, что нужно.

Надо, у меня service файлы патчатся скритом, т.е. берется чистый образ оперухи и дальше при первом запуске он приводится к полностью настроеному виду скриптом. Очень удобно, т.к. исключается человеческий фактор и за 5 минут делается то, что человек бы сделал за несколько дней.

Один минус, сделать и отлидить такой скрипт - несколько недель :)

samson_b
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.