Подними потолок lab-thumbs так, чтобы правка пережила обновление пакета.
Файл юнита lab-thumbs лежит в /usr/lib/systemd/system — этот каталог принадлежит пакетам, и обновление перезапишет файл вместе с твоей правкой. Свои настройки кладут в дополнение юнита (drop-in): файл .conf в каталоге /etc/systemd/system/<юнит>.d/. В нём — только то, что меняешь, под заголовком своей секции. Остальное systemd берёт из основного файла.
Файлы юнитов systemd читает при запуске и по systemctl daemon-reload. Без него новый файл не действует: systemctl show -p MemoryMax печатает прежний потолок. После daemon-reload потолок работающей службы меняется сразу. В systemctl status появилась строка Drop-In, а через несколько секунд служба пройдёт всю очередь: панораме с копией хватает 128 МиБ. systemctl cat lab-thumbs покажет основной файл и дополнение подряд.
Ты положил drop-in с MemoryMax=96M, а systemctl show -p MemoryMax печатает infinity. Что сделаешь?
-
restart не перечитывает файлы юнитов: systemd напомнит, что файлы изменились, и запустит службу без потолка.
-
Правку в файле пакета сотрёт обновление, и без перечитывания настроек systemd её тоже не увидит.
systemd читает файлы юнитов при запуске и по daemon-reload. После него потолок применяется и к работающей службе.
Главное в шаге
-
Файлы юнитов в /usr/lib/systemd/system принадлежат пакетам, свои настройки — в drop-in
/etc/systemd/system/<юнит>.d/*.conf. -
После правки —
systemctl daemon-reload; потолок памяти работающей службы меняется без перезапуска. -
systemctl catпоказывает основной файл юнита и все дополнения.