DEVOPSLIB Telegram 80
🔧 Как не словить 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=journal
StandardError=journal

Логика простая: чем проще найти ошибку — тем быстрее в проде всё снова работает.


И последнее: не забудь прогнать systemd-analyze verify my-app.service перед выкатыванием. Иногда он спасает от того, что ты бы искал часами.


🙃 systemd — это не враг. Это просто злобный кот. Главное — гладить его по шерсти.

Подпишись 👉@devopslib
👍4



tgoop.com/devopslib/80
Create:
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=journal
StandardError=journal

Логика простая: чем проще найти ошибку — тем быстрее в проде всё снова работает.


И последнее: не забудь прогнать systemd-analyze verify my-app.service перед выкатыванием. Иногда он спасает от того, что ты бы искал часами.


🙃 systemd — это не враг. Это просто злобный кот. Главное — гладить его по шерсти.

Подпишись 👉@devopslib

BY Библиотека девопса | DevOps, SRE, Sysadmin


Share with your friend now:
tgoop.com/devopslib/80

View MORE
Open in Telegram


Telegram News

Date: |

Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. best-secure-messaging-apps-shutterstock-1892950018.jpg Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. Earlier, crypto enthusiasts had created a self-described “meme app” dubbed “gm” app wherein users would greet each other with “gm” or “good morning” messages. However, in September 2021, the gm app was down after a hacker reportedly gained access to the user data.
from us


Telegram Библиотека девопса | DevOps, SRE, Sysadmin
FROM American