Bash Days | Linux | DevOps
23.3K subscribers
156 photos
24 videos
678 links
Авторский канал от действующего девопса

Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.

Автор: Роман Шубин
Реклама: @maxgrue

MAX: https://max.ru/bashdays

Курс: @tormozilla_bot
Блог: https://bashdays.ru
Download Telegram
Моя Raspberry Pi 5 (8Gb) последнее время крутилась в таком корпусе. Но после скачков напряжения, всё знатно троило, приходилось регулярно использовать fsck, да чё греха таить порой и это не помогало.

В очередной раз меня это заебало, всё накрылось пиздой, micro-sd явно к такому не была готова. И я пошел гуглить.

Ну и нагуглил:

1. Корпус: Geekbord X1201-C1
2. Куллер: Active Cooler Geekworm H505
3. Плата расширения: Geekworm X1201 V1.1
4. Адаптер NVME: HAT X1001 2280 2242 2230

Смысл данного сетапа: 2 батарейки 18650 используются для резервного питания, ну и самое главное это замена micro-sd на полноценный NVME диск.

Заказал. Довольно быстро пришло. Собрал всё в кучу, особых трудностей не возникло. Ну а дальше…

Как обычно. Если хочешь, чтобы что-то заработало, нужно допилить напильником. В моём случае куллер отказывался вообще включаться.

Ребята из Geekworm пидарасы такую лютую хуйню в документации написали, что после их рекомендаций пришлось перекатывать OS заново. И уже вдумчиво все ковырять.


По итогу 2х часов пиздостраданий я скомпилировал этот модуль и доставил еще каких-то 100500 пакетов. Ну естественно нихуя не заработало.

Пришлось писать python скрипт, который нужно было сделать сервисом. Скрипт отслеживает температуру и запускает вертушку при необходимом пороге перегрева.

Кусок скрипта выглядит так:

try:
while True:
temp = get_temp()
print(f"Temperature: {temp}")
if temp > 50:
lgpio.gpio_write(h, GPIO, 1)
else:
lgpio.gpio_write(h, GPIO, 0)
time.sleep(5)


Это пиздец конечно. Если вздумаешь брать эти железяки, сразу готовься маленько поебстись.

Еще из минусов: 2 дырки под вход питания, сначала я пихал в родную дырку малины, а потом уже прочитал что сука надо пихать в другую дырку, но предварительно поплевать, чтобы трения не было. Хорошо, что ничего не спалил и не взорвалось.

Собственно, как и в реальной жизни. Сначала с черного входа зашел, потом получил по ебалу и нормально сделал.


То есть на корпусе 2 дырки под питание. Родное малиновское и через плату расширения через банки 18650.

Короче победил, погонял, провёл стресс тесты, отключил питание, 18650 отлично держат, не засекал сколько, чисто проверял переключение питания.

Ну и графики завел в графану чтобы потом визуально оценить происходящее.

Хоть сетап и проблемный, но проблемы решаются. По итогу получаешь энергонезависимое устройство да еще и на NVME диске.

Пока доволен. Дальше видно будет.

Чуть позже расскажу про — Pironman 5 Series. Это уже лакшери корпус для малинки, с ним вообще никаких проблем, ни по сборке ни по софту, ребята молодцы!


Такие дела…

А еще меня смущает надпись на плате расширение - Не используйте батареи 18650 с встроенной защитой. А я в душе не ебу какие у меня аккумуляторы туда вставлены.

Собственно вопрос в зал — кто шарит за электронику, чем грозит вставка батареек с защитой? Мне почему-то всегда казалось что такие батарейки намного надежнее чем просто без защиты. Слышал что если на плате есть BMS, то защита в батарейках не нужна.

Напишите в комменты, а то мож у меня этот сетап через неделю прикажет долго жить.

🛠 #selfhosting #hardware

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
144
Вопрос из зала — а что я кручу на хую малине?

Да всё просто — не proxmox!

На ней у меня Ubuntu 24.10 под ARM (без десктопа, чисто серверная версия), ну и тот самый dockge в котором я запускаю контейнеры.

К этой малине у меня подключено 2 внешних диска WD RED (2x2TB) по USB3.

Программный зеркальный рейд я ебал на таком создавать, поэтому второй диск синкает через rclone всё что лежит на первом.

Достаточно удачный сет, однажды первый диск приказал долго жить, второй выручил. Понятно, хуёвый бэкап, но самые критичные данные с этого диска бэкапятся у меня прям в S3 Selectel, там около 100 гигов. Выходит около 200р в месяц за S3 — чашка кофея. Бэкапится всё так же через rclone.

Проверка подключения дисков по USB проверяется через сервис, если диск отвалился или по какой-то причине отмонтировался — оно пытается его обратно примонтировать. Если не получилось — пиздит в телегу. Но обычно в 100% случаев таких проблем не возникало.

Какие контейнеры я гоняю

1. Seafile (пришел на замену пиздострадальному nexcloud).
2. Jellyfin (медиа сервер, DLNA и т.п. мультики смотрю).
3. Uptime Kuma (мониторит мои серваки в проде, LF, боты и т.п.).
4. Syncthing (бекапятся десктопные машины, с которых тебе пишу посты).
5. QBittorrent (качалка контента для Jellyfin).
6. Grafana + Prometheus (мониторинг домашние и прод инстансы).

И да я собрал еще один сетап, прям на нормальной матери и там поднял proxmox, в нем кластер куба, опять же для уроков для LF, так что скоро будет интенсив по кубику. По этому сетапу напишу отдельно.


На этом задачи малины заканчиваются.

По ресурсам там прям минимальное поджиралово — 2 гига оперативы занято, проц 0.14 0.28 0.22. По температурам и т.п. был пост выше. При использовании Jellyfin само собой нагрузки растут, но не критично.

В планах — сделать нормальный бэкап Seafile, накрутить Samba (хуй знает зачем, опять же хватает Seafile).

Жду еще NAS из китая (чисто коробка, диски отдельно у меня валяются по 4TB), буду на него фотки бэкапить, чет их пиздец за 500 гигабайт перевалило, а в S3 лить в падлу.


Смотрел еще в сторону локального minIO, но я ебал, чем больше технологий, тем больше ебли и точек отказа. Всегда стремись упрощать!

Короче обычная рутина, ничего сверх естественного.

🛠 #selfhosting #hardware

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
66
Всё же меня заковыряла жизнь без proxmox, мне блядь лабы писать для LF, а я сапожник без сапог.

Короче сходил в гараж, нашел свой старый мини писюк, на котором лет 100 назад крутил публичный майнкрафт сервак и прочие непотребности.

Конфиг внутри оказался такой: материнка GA-B75N (1155), 16 рама, проц g2020, винтов нет.

Проц конечно говнище то еще.


Апгрейдим. Заказал на озоне проц i7-3770 под сокет 1155, памяти не нашел подходящей, 2 слота всего, максимум 8+8, остальная не подходит, судя по спекам к мамке. Похуй, оставил та что была изначально.

Интересно что на озоне и вб продают такие беушные штуки, как-то даже кайфанул что не нужно с долбаёбами на авито общаться.

И знатно охуел что g2020 стоит 300 рублей )) А покупал я в то время его как крыло от самолёта.


Ну да ладно, 16ти хватит за глаза, разъебашить куб и показать ребятам чё к чему.

Вспомнил молодость, поковырялся в железках, термопаста, болтики, кисточки от пыли. Весь изрезался, изматерился, извозился, ёбом токнуло, но победил. Накатил proxmox, провел post install. Всё взлетело прям без подводных камней. И это заебись!

Ну чё могу сказать, этому сетапу я теперь на 100500% доверяю, нежели покупки китайской коробочки которая мне сделала головняк. Этот мини пека у меня отработал 4-5 лет в нонстопе 24/7. Были в нем рейды и т.п. ни разу не подвел.

Да, еще прикупил запасной блок питания TFX 350W, на всякий случай.


Короче посмотрим. Пока и по температуре заебись и по ресурсам. Гонять 24/7 я его не буду, оно мне не нужно, есть куча малин в обиходе. Использоваться будет как лаба, включил/выключил.

Минусы — на этой матери не работает Wake up on lan, победить не получилось, но опять же не критично. Крон и умная розетка решает это проблему если уж надо.

Кстати по китайской коробочке — припарировал как только можно, ничего не помогло, уходит в защиту и похуй. Всё прозвонил, греется поебота на питании, ну как и предполагалось.

Вытащил из нее винт на терабайт, закинул его во внешний кейс и прицепил к малине (пока сам не понял — а нахуя?).

Добавить больше нечего, просто держу в курсе событий, этакий воскресный ВЛОГ получился. Тут больше пользы наверное что на озоне и вб можно беуху заказать для старых железяк.

🛠 #selfhosting #hardware

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
103
Продолжаю заниматься селф-хостингом, на этот раз меня заебала температура малинки, хоть там и стоит куллер, его явно маловато. Средняя температура без нагрузки 58-60 градусов. Ну хуйня же!

Пошел гуглить и нагуглил отличнейшее решение с внешней вертушкой для роутеров и приставок. Да блядь, чего только не придумают.

Суть устройства такова: внешняя вертушка выступает в роле подставки, на резиновых ножках, да еще и с возможностью регулировать скорость.

Заказал здесь на озоне, пришло, малинка идеально встала с учетом железного корпуса. Тут еще момент, что снизу корпуса есть много отверстий и получается поток воздуха проходит насквозь.

Что по шуму. Да нет его, даже на максимальных оборотах, по крайней мере я ничего не слышу. Поэтому регулировку скорости я отключил, кабель на коннекторах, туда-сюда.

Еще резиновые ножки не гасят вибрации, пришлось вырезать дополнительную подложку из какого-то материала, который нашел в коробке из под видеокарты.

По результатам: температура снизилась до стабильных 48-50 градусов, при нагрузке включается штатный вентилятор и в пике греется до 53-55.

Кстати эта внешняя вертушка запитывается прям от малины по USB.


Вот такие пироги!

🛠 #selfhosting #hardware

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
51
Как-то давно, в одной компании изначально так получилось, что один СТО мне напихивал задачи через слак, просто хуярил как заводной петух.

Тогда еще все сидели на тяжёлых (слаке и джире).


Ты делаешь одну задачу, в спину прилетает еще пять и я сижу как кукушка беременная и не понимаю, за что мне браться в первую очередь, ведь и там срочно было и тут срочно, а теперь вообще анал-карнавал.

Одно время я эти задачи честно выписывал себе в трекер или на бумажку чтобы ничего не проебать, ведь чем больше задач тем больше я отработаю часов, тем больше получу баксов. Это логично.

Но в какой-то момент задач становилось все больше и больше и все эти задачи в слаке разбавлялись перепиской команды, если сразу не выписал себе, то все пизда, фокус потерян!

И когда меня спрашивали — а какой статус вот по этому? Я в душе не ебал чё от меня хотят, потому что банально проебал задачу в простыне корпоративного текстового говна.

В какой-то момент капнула последняя капля.

Аналогично мне задают вопросы по задачам, которые я даже не видел, потому что замьютил канал в слаке. Читал его только если меня призывали как сука демона через @романбаран. А я ответить то ничё не могу, потому что в глаза не видел, что от меня хотят.

Нахуй вообще СТО там был нужен вообще не понятно. Наверное чей-то родственник.

Пришлось потратить 2 минуты и написать откровенное сообщение всратому управленцу, что с сегодняшнего дня все задачи должны ставится в джиру, а не вот это вот все дерьмо в котором я работаю.

Не хотите в джиру — идите на хуй! Хотя они и так нахуй пошли спустя пару недель.


Думаете мне кто-то что-то ответил? Да хуй там плавал, CTO мог отвечать только в 3 часа ночи и по выходным, ибо в обычное нормальное человеческое время этот чёрт был заняты чем-то иным. Наверное заряжал свой пулемет срочными задачами.

Ладно чё уж, в любой компании своего дерьма навалом.

Но все же, если ты тимлид или какой-то руководитель — ставь задачи в таск-трекер и тебя будут любить и ничего у тебя не проебётся, всегда будет контекст.

Ну и береги свои кадры, проебать золото очень легко. Такие дела!

🛠 #рабочиебудни #remains

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
15114
Я тут недавно игрушку написал. Ну, как написал, реализовал.

🔤🔤🔥🔤🔤🔤🔤

Вариант 2048, оптимизированный по занимаемому экранному пространству.

➡️ Ознакомиться с игрушкой можно здесь.


Но у нас тут люди серьезные, поэтому рассмотрим проблемы, возникающие при реализации вывода скриптов.

Простой пример:

for i in {1..100};do
printf "#"
sleep .3
done


Код просто выводит символы #, примерно 3 штуки в секунду. Все работает нормально, пока пользователь не начинает что-то набирать на клавиатуре.

И тогда получаем:

######sb#sf#bg#sfbg#wfgb#wg#fg#b###^[[A#^[[B#^[[D#^[[A#^[[B##


Убрать эхо вывода на терминал просто:

stty -echo


Классная команда. После ее выполнения нажатые клавиши не отображаются.

Все работает, команды выполняются, результат отображается, а набранная команда — нет. Как при наборе пароля.

Вернуть все просто:

stty echo


Но в скриптах желательно обрабатывать прерывания:

trap 'exit' INT HUP TERM
trap 'stty echo;tput cnorm' EXIT
# stop terminal echo
stty -echo
#hide cursor
tput civis


Применять исключительно для причинения добра.

man stty
man tput
help trap


🛠 #bash #linux #games

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
51
Самое тупое что можно сделать во время пятничного деплоя это быть трезвым!

Раньше, когда я чувствовал, что дел накопилось дохуя гораздо больше чем я могу вывезти, а мозги просто нахуй перегорали в пепел — я останавливался.

Потому, что когда у тебя куча каких-то обязательств, в кровь выделяется какая-то хуйня, которая постоянно держит тебя в напряжении. А на фоне этого вылазиет — гастрит, геморрой жопы и все болячки мира связанные с волнением.

Как я останавливался? Ооо брат, для этого есть охуенная практика.

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

Как только какая-то мысль меня отвлекала от процесса и точка снова фокусировалась, я записывал эту мысль на другой лист бумаги, а затем снова фокусировался и смотрел на жирную точку, пока следующая мысль меня не отвлечет.

Весь процесс у меня занимал примерно 15-30 минут. Как только я понимал, что продолжительное время тупо смотрю в одну точку и ни о чем не думаю, это становилось сигналом, что мои мозги максимально разгружены.

Да, нужно писать руками на аналоговом листике, это важно! Если писать в тот же обсидиан, то ничего не получается. Видимо в этом участвуют еще какие-то другие процессы организма. Ну или просто я долбаёб.


Эту практику я назвал — разгрузка говна.

После процедуры, я брал листик на который выписывал все свои мысли, внимательно их перечитывал и большую часть просто вычеркивал. Так как больше половины говна просто забивали мою голову и я беспокоился практически ни о чем.

А напротив мыслей которые требовали моих действий, я писал варианты их решения. По итогу максимально избавлялся от стресса и лишнего багажа бессмысленных дел.

Примеры

— Завтра я должен вынести мусор, воняет. Ну да, без меня это не решится, еще и пиздюлей получу, эту таску оставляем, сделаю.

— Кот насрал в лоток. Хуйня! Вычеркиваем, делаем вид, что не заметил, уберет кто-то другой, есть кому. Автоматическое делегирование. Зачеркиваем.

— Новенький сотрудник не может подключиться по ssh к серверу. Так, ключ он мне отдал, я его прописал, должно работать. Скорее всего он душноёб и не указывает приватный ключ при подключении. Пусть идет нахуй. Зачеркиваем.

— Перестали собираться логи с сервера bashdays-b1, не собираются уже 90 дней, хм… Раз никто не пришел, эти логи нахуй никому не нужны. Что делаем? Зачеркиваем!

Ну ты понял! 99% твоих мыслей — ХУЙНЯ! Вычеркивай по максимуму! Обращай внимание только на важное — на вонь, которая будет тебе доставлять дискомфорт.

Ну а если и вонь тебя устраивает — её тоже вычеркиваем! И тогда ты прошел эту практику на 102%, собрал все ачивки, выполнил все квесты, красавчик!

Почему я не практикую это сейчас? Да потому, что для этой практики нужно хотя бы полчасика одиночества и тишины, а это для меня сейчас большая роскошь.


Надо попробовать съебаться куда-нибудь и разгрузить говно, которое скопилось. И я уверен, что 99.9999% будет вычеркнуто!

Не благодари, попробуй, практика проверенная!

🛠 #рабочиебудни #remains

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
13146
Закрытие техдолга Q5_2025

Так ли хуёво легаси? Да наверное нет, оно же работает годами, приносит бабло бизнесу. А тут приходишь ты и начинаешь ссать в уши, что все гавно и ты щас все переделываешь.

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

А то легаси, которое ты хотел заменить своими амбициями, по прежнему работает и приносит бизнесу деньги.

Я всегда склонялся к тому, чтобы не перепиливать продукт, а сделать новый, параллельно старому.

Причем не в ущерб повседневным задачам. Даже если твоя новая поделка не взлетит, то никак не сломает старый продукт и все бизнес задачи будут закрыты.

Так что херовая идея приходить в команду и начинать орать — бля у вас тут везде гавно! Ну сделай, ага…

🛠 #рабочиебудни #remains

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
80
Сегодня ребята прикольно упиздякали свой продакшен. Ща расскажу.

В общем пиэм проводил эксперименты на тестовом сервере через вебморду, админка там все дела, чёто включал, удалял, в общем веселился парняга.

В какой-то момент посыпались тикеты о проблемах на проде. Клиенты рвали и метали жидкий понос в сторону саппорта, а графана нарисовала сочный хуец.

Пошли разбираться, оказалось все пиздец просто как нехуй делать.

На тестовом сервере при сохранении формы, произошла переадресация на основной домен. Потому, что в nginx был какой-то сука роут.

А так как пиэм был авторизован и на основном домене, то продолжил свою вакханалию по уничтожению продакшена, ничего не подозревая.

Он был уверен, что все действия он выполняет на тестовой среде. А тестовая среда один в один копия продакшена. Классический кейс.

Такие пироги. И пришлось мне сегодня всё утро разгребать эти конюшни.

Какая тут мораль? Да никакой, если изначально корабль хуёво построен, то хоть ты его блядь золотом покрой, он внутри говном и останется.

🛠 #рабочиебудни #remains

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
144
Давненько Bash годноты не было. Лови.

В этом руководстве содержится необходимая база по Bash, чтобы твой код был в кодстайле, а сами скрипты получались безопасными и предсказуемыми.

Что прикольно, это не 100500 страниц текста, это прям выжимка-концентрат.


Написал её некий Дэйв Эдди в рамках серии статей — YSAP (You Suck at Programming) или по-русски — «Ебать ты лох».

Преисполниться можно тут

Ну и из терминала можно прям почитать так:

curl style.ysap.sh


Ну а кому формат чтива не заходит, на это руководство есть видео ролики от того же иностранного гражданина.

Все ссылки на гитхабы-хуябы найдешь там же. Изучай!

Ну и совсем скоро у меня выходит брошюра, Bash для девопс-инженеров, там аналогичная выжимка-концентрат, но с упором на CI/CD и т.п. Анонс будет отдельно.


🛠 #bash

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3114
Существует распространенное заблуждение — если сходить в отпуск, то по возвращению, работа заиграет новыми красками.

ХУЙ ТАМ ПЛАВАЛ! Если у тебя появились такие мысли, то ты работаешь на нелюбимой работе. А поход в отпуск для тебя является, мифической чертой, переступив которую тебе кажется, что все изменится.

НИХУЯ!

Это как новый год, все его ждут, в надежде, что следующем году будет прям пиздец лучше. Для кого он будет лучше? Для тебя?

Не думаю, всё это ХУЙНЯ мнимая, игры разума. Отпуск и праздники это обычные дни, ничего не изменится в твоей работе после того как ты отдохнул.

Обычно когда ты возвращаешься из отпуска, у тебя 100500 новых нерешенных задач, куча ковнокода, который ты не контролировал в гите и еще собака обдристала стену. Ну и вишенка — в день зарплаты тебе дадут хуй без масла.

Поэтому бери эти мудрые знания себе на заметку и в момент, когда твой выгоревший мозг захочет «похалявить» пару неделек, задай себе вопрос — а изменится ли что-то после моего отдыха? НЕА!

А что делать? Ходить в творческий отпуск, когда год на дядю не пашешь, а занимаешься своими любимыми делами. Бухаешь, спишь, сношаешься с рукой. Но для этого нужна финансовая подушка, которой многие пренебрегают.

Ну и самый действенный способ — высыпаться. Ложиться спать в 10-11 вечера, вставать в 7-8 утра. Ну и естественно сон должен быть трезвым. Тут уже и финансовая подушка не понадобится, хватит обычной из магазина.

Вот и весь секрет успеха. А отпуск это самообман и наёбка.

🛠 #рабочиебудни #remains

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
7127
Поднимаем свой «Хероку»

Наверняка все знают Heroku. Если кратко, эта херотень позволяет запускать приложения. Будь то веб-приложения, докер-контейнеры и т.п. без необходимости настраивать и поддерживать серверную инфраструктуру.

Короче что-то вроде среды для запуска всего и вся с возможностью быстрого управления и масштабирования. С мордочкой и кнопочками, как ты любишь.

У меня раньше телеграм боты в heroku успешно крутились, потом эти письки закрыли бесплатный план и пришлось мигрировать.


Принцип работы простой:

1. Пушишь свой код в git
2. Условный «Heroku» это видит через webhook
3. Забирает код и собирает
4. Запускает в изолированном контейнере
5. Маршрутизирует трафик в контейнер

Чтобы развернуть всё это дело на своих серверах и никому не платить, можно воспользоваться двумя более-менее хорошими opensource проектами.

➡️ Dokploy и Coolify

Coolify более раскручен, но по сути те же яйца, только с боку.


Как всё это дело ставить и запускать, рассказывать не буду. Вся документация есть в официальных гит репозиториях.

Да, можно поднять в докере и не ебать мозги.


Но я предпочитаю всё же использовать k3s либо docker compose, потому что Dekploy и Coolify ты вряд ли встретишь в компаниях, они более нишевые.

Подойдут для самохостинга и для тех, кому насрать на девопс. А вот если тебе не насрать на девопс, старайся хоть раз в день работать с кубом, манифестами и контейнерами и будешь всегда в рынке.

По себе знаю, если я сделаю паузу в кубе хотя бы на недельку-другую, всё, пезда, начинается деградация, а это уже звоночек.


Короче интересные проекты я тебе принес, а дальше тебе самому решать, как этой информацией правильно воспользоваться. Изучай.

🛠 #selfhosting

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
251
Если тебе необходимо изменить файл сервиса в Linux, не нужно пиздовать ручками в папку /etc/systemd искать и править его.

Постоянно вижу этот кейс, чёто там ищут по папкам, ебутся. Правят оригинальный файл и все к хуям ломают.


А бест-практика уже заложена в systemctl!

Достаточно выполнить команду:

sudo systemctl edit nginx


Откроется редактор с нужным сервисом. НО, редактировать ты будешь не корневой юнит, а override. То есть прокладку, которая переопределит параметры основного юнита.

В моём случае с nginx будет открыт файл:

/etc/systemd/system/nginx.service.d/override.conf

В нем я переопределяю нужные параметры для сервиса и НЕ трогаю основной файл юнита.

А если я хочу править корневой?

Да похуй, вот тебе команда:

sudo systemctl edit --full nginx


Теперь будет открыт основной файл сервиса, можешь лезть в него своими шаловливыми ручонками и создавать проблемы.

1. Копирует оригинальный юнит-файл из /lib/systemd/system/nginx.service в /etc/systemd/system/nginx.service

2. Открывает его в редакторе.

3. После сохранения — systemd использует именно эту копию в /etc/.

Это безопасный способ редактировать полные юниты, без риска перезаписи при обновлении пакетов.

Есть еще ключ --force, но про него погугли сам.


Как проверить валидность файла юнита?

systemd-analyze verify /etc/systemd/system/nginx.service


В ответ получишь:

/etc/systemd/system/nginx.service:31: Missing '=', ignoring line.


Ага, ошибочка, правим и только после этого можно делать:

sudo systemctl daemon-reload
sudo systemctl restart nginx


Короче учись работать правильно и всё у тебя будет хорошо!

С пятницей! Хороших тебе предстоящих выходных и береги себя!

🛠 #linux #tricks #debug #systemd

@bashdays / @linuxfactory / @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
8211