tgoop.com/devopslib/80
Create:
Last Update:
Last Update:
🔧 Как не словить heart attack от systemd после ребута
Сценарий знакомый каждому: выкатываешь новую версию, всё проверено, ребутаешь — и… сервис не стартует. Или стартует, но не так. Или вообще не тот.
Вот пара вещей, которые стоит проверить заранее, чтобы systemd не превратился в твоего личного врага:
✅ Проверь WantedBy и After
Очень часто забывают правильно указать зависимости между юнитами. Если my-app.service зависит от postgresql.service, обязательно пропиши:
[Unit]
After=postgresql.service
Requires=postgresql.service
✅ Не забудь про
EnvironmentFileЕсли ты грузишь переменные из
.env, проверь, что путь указан корректно и файл точно есть:
EnvironmentFile=/etc/my-app/env
И что этот файл читаем для systemd!
✅ Работает в
screen, а в systemd — нет?Часто дело в
WorkingDirectory или User. Убедись, что все пути абсолютные и права выставлены правильно.✅ Логируйся, как будто завтра форензика
StandardOutput=journalStandardError=journalЛогика простая: чем проще найти ошибку — тем быстрее в проде всё снова работает.
✅ И последнее: не забудь прогнать
systemd-analyze verify my-app.service перед выкатыванием. Иногда он спасает от того, что ты бы искал часами.🙃
systemd — это не враг. Это просто злобный кот. Главное — гладить его по шерсти.Подпишись 👉@devopslib
BY Библиотека девопса | DevOps, SRE, Sysadmin
Share with your friend now:
tgoop.com/devopslib/80
