[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/systemd-service-files":3,"mdc--dgtxos-key":909,"mdc--qpp6rg-key":943,"mdc-iqlj7m-key":966,"mdc--6f6316-key":990,"mdc-dub5kh-key":1019,"mdc-vkimo6-key":1049,"mdc--bvm4z2-key":1084,"mdc-lmizip-key":1101,"mdc-ondqgp-key":1125,"related-/guides/linux/systemctl-commands,/guides/linux/journald-logs,/errors/linux/systemd-failed-to-start":1149},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":845,"code":845,"createdAt":846,"description":847,"difficulty":848,"draft":849,"estimatedTime":850,"extension":851,"faq":852,"howToSteps":865,"howToTotalTime":881,"image":845,"keywords":882,"locale":890,"meta":891,"navigation":129,"path":892,"platform":893,"related":894,"section":898,"seo":899,"severity":845,"stem":900,"summary":901,"tags":902,"twitterCreator":845,"twitterSite":845,"type":907,"updatedAt":846,"__hash__":908},"content_ru/guides/linux/systemd-service-files.md","Создаем systemd-сервис: полное руководство по настройке автозапуска",[7,8,9,10],"Ubuntu 20.04+","Debian 11+","CentOS/RHEL 8+","Fedora 35+","FixPedia Team",{"type":13,"value":14,"toc":827},"minimark",[15,20,33,36,40,43,75,78,82,95,149,166,168,172,175,265,270,416,433,435,439,442,457,464,466,470,473,531,534,536,540,543,562,567,591,598,668,670,674,683,713,725,760,764,795,802,823],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23,24,28,29,32],"p",{},"Systemd — это система инициализации и менеджер служб, который используется по умолчанию в большинстве современных дистрибутивов Linux (Ubuntu, Fedora, Debian, CentOS). Вместо скриптов в ",[25,26,27],"code",{},"/etc/init.d/"," вы работаете с декларативными юнит-файлами (unit files). Этот подход даёт мощные возможности: управление зависимостями, параллельный запуск, автоматический перезапуск упавших процессов и централизованное логирование через ",[25,30,31],{},"journald",".",[21,34,35],{},"В этом гайде вы научитесь создавать собственные systemd-сервисы для запуска ваших приложений, скриптов или демонов в фоне с контролем над их жизненным циклом.",[16,37,39],{"id":38},"требования-подготовка","Требования / Подготовка",[21,41,42],{},"Перед началом убедитесь, что:",[44,45,46,55,66,69],"ol",{},[47,48,49,50,54],"li",{},"У вас есть доступ к терминалу Linux с правами ",[51,52,53],"strong",{},"sudo"," (администратора).",[47,56,57,58,61,62,65],{},"Вы знакомы с базовыми командами редактирования файлов (",[25,59,60],{},"nano",", ",[25,63,64],{},"vim",").",[47,67,68],{},"Путь к исполняемому файлу или скрипту, который вы хотите запустить как сервис, известен и доступен.",[47,70,71,72,65],{},"Дистрибутив использует systemd (проверить можно командой ",[25,73,74],{},"pidof systemd",[76,77],"hr",{},[16,79,81],{"id":80},"шаг-1-создайте-юнит-файл-сервиса","Шаг 1: Создайте юнит-файл сервиса",[21,83,84,85,90,91,94],{},"Все пользовательские юнит-файлы сервисов размещаются в ",[51,86,87],{},[25,88,89],{},"/etc/systemd/system/",". Имя файла должно заканчиваться на ",[25,92,93],{},".service"," и обычно совпадает с логическим именем сервиса.",[96,97,102],"pre",{"className":98,"code":99,"language":100,"meta":101,"style":101},"language-bash shiki shiki-themes github-light github-dark","# Перейдите в системную директорию для юнитов\ncd /etc/systemd/system/\n\n# Создайте файл сервиса (замените myapp на своё имя)\nsudo nano myapp.service\n","bash","",[25,103,104,113,124,131,137],{"__ignoreMap":101},[105,106,109],"span",{"class":107,"line":108},"line",1,[105,110,112],{"class":111},"sJ8bj","# Перейдите в системную директорию для юнитов\n",[105,114,116,120],{"class":107,"line":115},2,[105,117,119],{"class":118},"sj4cs","cd",[105,121,123],{"class":122},"sZZnC"," /etc/systemd/system/\n",[105,125,127],{"class":107,"line":126},3,[105,128,130],{"emptyLinePlaceholder":129},true,"\n",[105,132,134],{"class":107,"line":133},4,[105,135,136],{"class":111},"# Создайте файл сервиса (замените myapp на своё имя)\n",[105,138,140,143,146],{"class":107,"line":139},5,[105,141,53],{"class":142},"sScJk",[105,144,145],{"class":122}," nano",[105,147,148],{"class":122}," myapp.service\n",[150,151,152],"blockquote",{},[21,153,154,155,158,159,162,163,165],{},"⚠️ ",[51,156,157],{},"Важно:"," Не создавайте файлы напрямую в ",[25,160,161],{},"/lib/systemd/system/"," — эта директория предназначена для пакетов дистрибутива. Ваши ручные правки в ",[25,164,89],{}," будут приоритетнее.",[76,167],{},[16,169,171],{"id":170},"шаг-2-напишите-конфигурацию-юнит-файла","Шаг 2: Напишите конфигурацию юнит-файла",[21,173,174],{},"Юнит-файл состоит из нескольких секций. Вот минимальный, но рабочий шаблон:",[96,176,180],{"className":177,"code":178,"language":179,"meta":101,"style":101},"language-ini shiki shiki-themes github-light github-dark","[Unit]\nDescription=Мой кастомный сервис\nDocumentation=man:myapp(1)\nAfter=network.target\n\n[Service]\nType=simple\nUser=ваш_пользователь\nGroup=ваша_группа\nExecStart=/полный/путь/к/вашему/скрипту_или_бинарнику\nRestart=on-failure\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target\n","ini",[25,181,182,187,192,197,202,206,212,218,224,230,236,242,248,253,259],{"__ignoreMap":101},[105,183,184],{"class":107,"line":108},[105,185,186],{},"[Unit]\n",[105,188,189],{"class":107,"line":115},[105,190,191],{},"Description=Мой кастомный сервис\n",[105,193,194],{"class":107,"line":126},[105,195,196],{},"Documentation=man:myapp(1)\n",[105,198,199],{"class":107,"line":133},[105,200,201],{},"After=network.target\n",[105,203,204],{"class":107,"line":139},[105,205,130],{"emptyLinePlaceholder":129},[105,207,209],{"class":107,"line":208},6,[105,210,211],{},"[Service]\n",[105,213,215],{"class":107,"line":214},7,[105,216,217],{},"Type=simple\n",[105,219,221],{"class":107,"line":220},8,[105,222,223],{},"User=ваш_пользователь\n",[105,225,227],{"class":107,"line":226},9,[105,228,229],{},"Group=ваша_группа\n",[105,231,233],{"class":107,"line":232},10,[105,234,235],{},"ExecStart=/полный/путь/к/вашему/скрипту_или_бинарнику\n",[105,237,239],{"class":107,"line":238},11,[105,240,241],{},"Restart=on-failure\n",[105,243,245],{"class":107,"line":244},12,[105,246,247],{},"RestartSec=5\n",[105,249,251],{"class":107,"line":250},13,[105,252,130],{"emptyLinePlaceholder":129},[105,254,256],{"class":107,"line":255},14,[105,257,258],{},"[Install]\n",[105,260,262],{"class":107,"line":261},15,[105,263,264],{},"WantedBy=multi-user.target\n",[21,266,267],{},[51,268,269],{},"Разбор секций:",[271,272,273,310,384],"ul",{},[47,274,275,280,281],{},[51,276,277],{},[25,278,279],{},"[Unit]"," — метаданные и зависимости.\n",[271,282,283,289,304],{},[47,284,285,288],{},[25,286,287],{},"Description"," — краткое описание сервиса.",[47,290,291,294,295,299,300,303],{},[25,292,293],{},"After="," — указывает, что этот сервис должен запускаться ",[296,297,298],"em",{},"после"," указанных. ",[25,301,302],{},"network.target"," — частый вариант для сетевых приложений.",[47,305,306,309],{},[25,307,308],{},"Requires="," — жёсткая зависимость (если указанный сервис упадёт, упадёт и этот).",[47,311,312,317,318],{},[51,313,314],{},[25,315,316],{},"[Service]"," — ядро конфигурации.\n",[271,319,320,337,351,364,378],{},[47,321,322,325,326,329,330,333,334,32],{},[25,323,324],{},"Type="," — тип сервиса. ",[25,327,328],{},"simple"," (по умолчанию) — процесс запускается и работает в foreground. ",[25,331,332],{},"forking"," — для демонов, которые делают ",[25,335,336],{},"fork()",[47,338,339,342,343,346,347,350],{},[25,340,341],{},"User="," / ",[25,344,345],{},"Group="," — от имени кого запускать процесс. ",[51,348,349],{},"Крайне рекомендуется"," не запускать всё от root.",[47,352,353,356,357,360,361,65],{},[25,354,355],{},"ExecStart="," — ",[51,358,359],{},"обязательная директива",". Полный путь к исполняемому файлу или скрипту. Скрипт должен быть исполняемым (",[25,362,363],{},"chmod +x скрипт.sh",[47,365,366,369,370,373,374,377],{},[25,367,368],{},"Restart="," — политика перезапуска. ",[25,371,372],{},"on-failure"," — перезапускать при ненулевом коде выхода. ",[25,375,376],{},"always"," — всегда.",[47,379,380,383],{},[25,381,382],{},"RestartSec="," — задержка перед перезапуском в секундах.",[47,385,386,391,392,395,396],{},[51,387,388],{},[25,389,390],{},"[Install]"," — инструкции для ",[25,393,394],{},"systemctl enable",".\n",[271,397,398],{},[47,399,400,403,404,407,408,411,412,415],{},[25,401,402],{},"WantedBy="," — определяет, в каком ",[296,405,406],{},"целевом состоянии"," (",[25,409,410],{},"target",") должен быть включён сервис. ",[25,413,414],{},"multi-user.target"," — стандартный многопользовательский режим (аналог runlevel 3/5).",[150,417,418],{},[21,419,420,421,424,425,428,429,432],{},"💡 ",[51,422,423],{},"Совет:"," Для простых скриптов часто достаточно шаблона выше. Для Java-приложений или сложных сред может понадобиться ",[25,426,427],{},"EnvironmentFile="," (загрузка переменных окружения из файла) или ",[25,430,431],{},"ExecStartPre="," (команда перед запуском).",[76,434],{},[16,436,438],{"id":437},"шаг-3-перезагрузите-конфигурацию-systemd","Шаг 3: Перезагрузите конфигурацию systemd",[21,440,441],{},"После сохранения файла systemd должен «увидеть» новый юнит. Выполните:",[96,443,445],{"className":98,"code":444,"language":100,"meta":101,"style":101},"sudo systemctl daemon-reload\n",[25,446,447],{"__ignoreMap":101},[105,448,449,451,454],{"class":107,"line":108},[105,450,53],{"class":142},[105,452,453],{"class":122}," systemctl",[105,455,456],{"class":122}," daemon-reload\n",[21,458,459,460,463],{},"Эта команда заставляет systemd перечитать все юнит-файлы с диска. Без неё ",[25,461,462],{},"systemctl"," будет работать со старой копией конфигурации.",[76,465],{},[16,467,469],{"id":468},"шаг-4-включите-и-запустите-сервис","Шаг 4: Включите и запустите сервис",[21,471,472],{},"Теперь можно активировать сервис.",[44,474,475,509],{},[47,476,477,480,481,484,485,501,504,505,508],{},[51,478,479],{},"Включите для автозапуска"," (создаст симлинк в ",[25,482,483],{},"/etc/systemd/system/multi-user.target.wants/","):",[96,486,488],{"className":98,"code":487,"language":100,"meta":101,"style":101},"sudo systemctl enable myapp.service\n",[25,489,490],{"__ignoreMap":101},[105,491,492,494,496,499],{"class":107,"line":108},[105,493,53],{"class":142},[105,495,453],{"class":122},[105,497,498],{"class":122}," enable",[105,500,148],{"class":122},[502,503],"br",{},"Вывод ",[25,506,507],{},"Created symlink /etc/systemd/system/multi-user.target.wants/myapp.service → /etc/systemd/system/myapp.service."," означает успех.",[47,510,511,514,515],{},[51,512,513],{},"Запустите немедленно"," без перезагрузки:",[96,516,518],{"className":98,"code":517,"language":100,"meta":101,"style":101},"sudo systemctl start myapp.service\n",[25,519,520],{"__ignoreMap":101},[105,521,522,524,526,529],{"class":107,"line":108},[105,523,53],{"class":142},[105,525,453],{"class":122},[105,527,528],{"class":122}," start",[105,530,148],{"class":122},[532,533],"in-article-ad",{},[76,535],{},[16,537,539],{"id":538},"шаг-5-проверьте-статус-и-логи","Шаг 5: Проверьте статус и логи",[21,541,542],{},"Убедитесь, что сервис работает штатно.",[96,544,546],{"className":98,"code":545,"language":100,"meta":101,"style":101},"# Основная команда проверки\nsystemctl status myapp.service\n",[25,547,548,553],{"__ignoreMap":101},[105,549,550],{"class":107,"line":108},[105,551,552],{"class":111},"# Основная команда проверки\n",[105,554,555,557,560],{"class":107,"line":115},[105,556,462],{"class":142},[105,558,559],{"class":122}," status",[105,561,148],{"class":122},[21,563,564],{},[51,565,566],{},"Что искать в выводе:",[271,568,569,575,581],{},[47,570,571,574],{},[25,572,573],{},"Active: active (running)"," — сервис жив.",[47,576,577,580],{},[25,578,579],{},"Loaded: loaded (/etc/systemd/system/myapp.service; enabled; vendor preset: enabled)"," — файл загружен и включён.",[47,582,583,584,587,588,32],{},"Никаких красных строк ",[25,585,586],{},"Failed"," или ",[25,589,590],{},"inactive (dead)",[21,592,593,594,597],{},"Для детального просмотра логов используйте ",[25,595,596],{},"journalctl",":",[96,599,601],{"className":98,"code":600,"language":100,"meta":101,"style":101},"# Показать все логи сервиса (с самого начала)\nsudo journalctl -u myapp.service\n\n# Отслеживать логи в реальном времени (как tail -f)\nsudo journalctl -u myapp.service -f\n\n# Показать логи за последние 10 минут\nsudo journalctl -u myapp.service --since \"10 minutes ago\"\n",[25,602,603,608,620,624,629,643,647,652],{"__ignoreMap":101},[105,604,605],{"class":107,"line":108},[105,606,607],{"class":111},"# Показать все логи сервиса (с самого начала)\n",[105,609,610,612,615,618],{"class":107,"line":115},[105,611,53],{"class":142},[105,613,614],{"class":122}," journalctl",[105,616,617],{"class":118}," -u",[105,619,148],{"class":122},[105,621,622],{"class":107,"line":126},[105,623,130],{"emptyLinePlaceholder":129},[105,625,626],{"class":107,"line":133},[105,627,628],{"class":111},"# Отслеживать логи в реальном времени (как tail -f)\n",[105,630,631,633,635,637,640],{"class":107,"line":139},[105,632,53],{"class":142},[105,634,614],{"class":122},[105,636,617],{"class":118},[105,638,639],{"class":122}," myapp.service",[105,641,642],{"class":118}," -f\n",[105,644,645],{"class":107,"line":208},[105,646,130],{"emptyLinePlaceholder":129},[105,648,649],{"class":107,"line":214},[105,650,651],{"class":111},"# Показать логи за последние 10 минут\n",[105,653,654,656,658,660,662,665],{"class":107,"line":220},[105,655,53],{"class":142},[105,657,614],{"class":122},[105,659,617],{"class":118},[105,661,639],{"class":122},[105,663,664],{"class":118}," --since",[105,666,667],{"class":122}," \"10 minutes ago\"\n",[76,669],{},[16,671,673],{"id":672},"возможные-проблемы","Возможные проблемы",[675,676,678,679,682],"h3",{"id":677},"_1-ошибка-failed-to-start-или-сервис-сразу-падает","1. Ошибка ",[25,680,681],{},"Failed to start..."," или сервис сразу падает",[271,684,685,694,703],{},[47,686,687,690,691,32],{},[51,688,689],{},"Причина:"," Ошибка в самом приложении/скрипте, который запускает ",[25,692,693],{},"ExecStart",[47,695,696,699,700,702],{},[51,697,698],{},"Решение:"," Запустите команду из ",[25,701,693],{}," вручную в терминале, чтобы увидеть её вывод. Проверьте права на файл и пути к зависимым библиотекам/файлам.",[47,704,705,708,709,712],{},[51,706,707],{},"Диагностика:"," ",[25,710,711],{},"journalctl -u myapp.service -n 50 --no-pager"," покажет последние 50 строк логов сервиса.",[675,714,716,717,720,721,724],{"id":715},"_2-сервис-не-включается-enable-создаёт-symlink-но-после-reload-статус-disabled","2. Сервис не включается (",[25,718,719],{},"enable"," создаёт symlink, но после reload статус ",[25,722,723],{},"disabled",")",[271,726,727,741],{},[47,728,729,731,732,734,735,587,737,740],{},[51,730,689],{}," В секции ",[25,733,390],{}," отсутствует ",[25,736,402],{},[25,738,739],{},"RequiredBy=",", либо указан неверный target.",[47,742,743,745,746,749,750,753,754,757,758,32],{},[51,744,698],{}," Добавьте ",[25,747,748],{},"WantedBy=multi-user.target"," (для фоновых служб) или ",[25,751,752],{},"WantedBy=graphical.target"," (для GUI-приложений). Перевыполните ",[25,755,756],{},"daemon-reload"," и ",[25,759,719],{},[675,761,763],{"id":762},"_3-сервис-запускается-но-не-работает-как-ожидается-нет-доступа-к-сети-файлам","3. Сервис запускается, но не работает как ожидается (нет доступа к сети, файлам)",[271,765,766,771],{},[47,767,768,770],{},[51,769,689],{}," Проблема с контекстом безопасности. Сервис запускается в изолированном окружении.",[47,772,773,775],{},[51,774,698],{},[271,776,777,785,792],{},[47,778,779,780,757,782,784],{},"Убедитесь, что ",[25,781,341],{},[25,783,345],{}," указаны правильно.",[47,786,787,788,791],{},"Для доступа к сетевым портам \u003C1024 могут потребоваться дополнительные capabilities (",[25,789,790],{},"AmbientCapabilities=CAP_NET_BIND_SERVICE",") или запуск от root (не рекомендуется).",[47,793,794],{},"Проверьте, что у указанного пользователя есть права на чтение/запись в нужные директории.",[675,796,798,799],{"id":797},"_4-ошибка-dependency-failed-for","4. Ошибка ",[25,800,801],{},"Dependency failed for...",[271,803,804,814],{},[47,805,806,808,809,61,811,813],{},[51,807,689],{}," Сервис имеет зависимость (",[25,810,293],{},[25,812,308],{},") от другой службы, которая не запустилась или не существует.",[47,815,816,818,819,822],{},[51,817,698],{}," Проверьте статус зависимых служб (",[25,820,821],{},"systemctl status network.target"," или вашей_зависимости.service). Убедитесь, что имена зависимостей написаны правильно.",[824,825,826],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":101,"searchDepth":115,"depth":115,"links":828},[829,830,831,832,833,834,835,836],{"id":18,"depth":115,"text":19},{"id":38,"depth":115,"text":39},{"id":80,"depth":115,"text":81},{"id":170,"depth":115,"text":171},{"id":437,"depth":115,"text":438},{"id":468,"depth":115,"text":469},{"id":538,"depth":115,"text":539},{"id":672,"depth":115,"text":673,"children":837},[838,840,842,843],{"id":677,"depth":126,"text":839},"1. Ошибка Failed to start... или сервис сразу падает",{"id":715,"depth":126,"text":841},"2. Сервис не включается (enable создаёт symlink, но после reload статус disabled)",{"id":762,"depth":126,"text":763},{"id":797,"depth":126,"text":844},"4. Ошибка Dependency failed for...",null,"2026-02-17 12:02:04","Пошаговое руководство по созданию и управлению службами systemd в Linux. Научитесь писать unit-файлы, настраивать автозапуск и диагностировать проблемы за 15 минут.","medium",false,"15-30 мин","md",[853,856,859,862],{"question":854,"answer":855},"Как проверить, что сервис systemd запустился успешно?","Используйте команду `systemctl status \u003Cимя_сервиса>`. В выводе ищите строку `Active: active (running)` и убедитесь, что нет ошибок в разделе `Loaded`.",{"question":857,"answer":858},"Почему мой сервис не запускается автоматически после загрузки?","Наиболее частая причина — вы не включили сервис для автозапуска. Выполните `sudo systemctl enable \u003Cимя_сервиса>`. Также проверьте, нет ли конфликтующих зависимостей в разделе `[Install]`.",{"question":860,"answer":861},"Где хранятся логи моего systemd-сервиса?","Логи всех служб systemd по умолчанию собираются в `journald`. Просмотрите их командой `sudo journalctl -u \u003Cимя_сервиса> -f` для отслеживания в реальном времени.",{"question":863,"answer":864},"Можно ли запустить сервис от имени другого пользователя?","Да. В юнит-файле используйте директиву `User=` и `Group=` в разделе `[Service]`. Убедитесь, что у указанного пользователя есть необходимые права на доступ к файлам и сокетам.",[866,869,872,875,878],{"name":867,"text":868},"Создайте юнит-файл сервиса","Создайте новый файл с расширением `.service` в директории `/etc/systemd/system/`. Название файла будет именем вашего сервиса (например, `myapp.service`).",{"name":870,"text":871},"Напишите конфигурацию юнит-файла","Откройте файл в текстовом редакторе (например, `sudo nano /etc/systemd/system/myapp.service`) и заполните обязательные секции `[Unit]`, `[Service]` и `[Install]`.",{"name":873,"text":874},"Перезагрузите конфигурацию systemd","После создания или изменения юнит-файлов выполните `sudo systemctl daemon-reload`, чтобы systemd распознал новые или изменённые юниты.",{"name":876,"text":877},"Включите и запустите сервис","Включите сервис для автозапуска при загрузке (`sudo systemctl enable myapp.service`) и запустите его немедленно (`sudo systemctl start myapp.service`).",{"name":879,"text":880},"Проверьте статус и логи","Убедитесь, что сервис работает без ошибок, проверив его статус (`systemctl status myapp.service`) и логи (`sudo journalctl -u myapp.service -n 50`).","PT30M",[883,884,394,885,886,887,888,889],"systemd service файл","как создать systemd сервис","unit файл systemd пример","автозапуск программы в linux","systemd journalctl","ошибка systemd dependency","настройка службы linux","ru_RU",{},"/guides/linux/systemd-service-files","linux",[895,896,897],"/guides/linux/systemctl-commands","/guides/linux/journald-logs","/errors/linux/systemd-failed-to-start","Гайды Linux",{"title":5,"description":847},"guides/linux/systemd-service-files","В этом гайде вы узнаете, как создавать, настраивать и управлять службами systemd — стандартом для инициализации и управления процессами в современных дистрибутивах Linux.",[903,893,904,905,906,462],"systemd","sysadmin","автозапуск","сервис","guide","XV3rhXS4H2kkPzSyPMDweXmWnoN5KQ_4hpjZy3XHiBs",{"data":910,"body":911},{},{"type":912,"children":913},"root",[914],{"type":915,"tag":21,"props":916,"children":917},"element",{},[918,921,927,929,934,936,942],{"type":919,"value":920},"text","Используйте команду ",{"type":915,"tag":25,"props":922,"children":924},{"className":923},[],[925],{"type":919,"value":926},"systemctl status \u003Cимя_сервиса>",{"type":919,"value":928},". В выводе ищите строку ",{"type":915,"tag":25,"props":930,"children":932},{"className":931},[],[933],{"type":919,"value":573},{"type":919,"value":935}," и убедитесь, что нет ошибок в разделе ",{"type":915,"tag":25,"props":937,"children":939},{"className":938},[],[940],{"type":919,"value":941},"Loaded",{"type":919,"value":32},{"data":944,"body":945},{},{"type":912,"children":946},[947],{"type":915,"tag":21,"props":948,"children":949},{},[950,952,958,960,965],{"type":919,"value":951},"Наиболее частая причина — вы не включили сервис для автозапуска. Выполните ",{"type":915,"tag":25,"props":953,"children":955},{"className":954},[],[956],{"type":919,"value":957},"sudo systemctl enable \u003Cимя_сервиса>",{"type":919,"value":959},". Также проверьте, нет ли конфликтующих зависимостей в разделе ",{"type":915,"tag":25,"props":961,"children":963},{"className":962},[],[964],{"type":919,"value":390},{"type":919,"value":32},{"data":967,"body":968},{},{"type":912,"children":969},[970],{"type":915,"tag":21,"props":971,"children":972},{},[973,975,980,982,988],{"type":919,"value":974},"Логи всех служб systemd по умолчанию собираются в ",{"type":915,"tag":25,"props":976,"children":978},{"className":977},[],[979],{"type":919,"value":31},{"type":919,"value":981},". Просмотрите их командой ",{"type":915,"tag":25,"props":983,"children":985},{"className":984},[],[986],{"type":919,"value":987},"sudo journalctl -u \u003Cимя_сервиса> -f",{"type":919,"value":989}," для отслеживания в реальном времени.",{"data":991,"body":992},{},{"type":912,"children":993},[994],{"type":915,"tag":21,"props":995,"children":996},{},[997,999,1004,1005,1010,1012,1017],{"type":919,"value":998},"Да. В юнит-файле используйте директиву ",{"type":915,"tag":25,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":919,"value":341},{"type":919,"value":757},{"type":915,"tag":25,"props":1006,"children":1008},{"className":1007},[],[1009],{"type":919,"value":345},{"type":919,"value":1011}," в разделе ",{"type":915,"tag":25,"props":1013,"children":1015},{"className":1014},[],[1016],{"type":919,"value":316},{"type":919,"value":1018},". Убедитесь, что у указанного пользователя есть необходимые права на доступ к файлам и сокетам.",{"data":1020,"body":1021},{},{"type":912,"children":1022},[1023],{"type":915,"tag":21,"props":1024,"children":1025},{},[1026,1028,1033,1035,1040,1042,1048],{"type":919,"value":1027},"Создайте новый файл с расширением ",{"type":915,"tag":25,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":919,"value":93},{"type":919,"value":1034}," в директории ",{"type":915,"tag":25,"props":1036,"children":1038},{"className":1037},[],[1039],{"type":919,"value":89},{"type":919,"value":1041},". Название файла будет именем вашего сервиса (например, ",{"type":915,"tag":25,"props":1043,"children":1045},{"className":1044},[],[1046],{"type":919,"value":1047},"myapp.service",{"type":919,"value":65},{"data":1050,"body":1051},{},{"type":912,"children":1052},[1053],{"type":915,"tag":21,"props":1054,"children":1055},{},[1056,1058,1064,1066,1071,1072,1077,1078,1083],{"type":919,"value":1057},"Откройте файл в текстовом редакторе (например, ",{"type":915,"tag":25,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":919,"value":1063},"sudo nano /etc/systemd/system/myapp.service",{"type":919,"value":1065},") и заполните обязательные секции ",{"type":915,"tag":25,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":919,"value":279},{"type":919,"value":61},{"type":915,"tag":25,"props":1073,"children":1075},{"className":1074},[],[1076],{"type":919,"value":316},{"type":919,"value":757},{"type":915,"tag":25,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":919,"value":390},{"type":919,"value":32},{"data":1085,"body":1086},{},{"type":912,"children":1087},[1088],{"type":915,"tag":21,"props":1089,"children":1090},{},[1091,1093,1099],{"type":919,"value":1092},"После создания или изменения юнит-файлов выполните ",{"type":915,"tag":25,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":919,"value":1098},"sudo systemctl daemon-reload",{"type":919,"value":1100},", чтобы systemd распознал новые или изменённые юниты.",{"data":1102,"body":1103},{},{"type":912,"children":1104},[1105],{"type":915,"tag":21,"props":1106,"children":1107},{},[1108,1110,1116,1118,1124],{"type":919,"value":1109},"Включите сервис для автозапуска при загрузке (",{"type":915,"tag":25,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":919,"value":1115},"sudo systemctl enable myapp.service",{"type":919,"value":1117},") и запустите его немедленно (",{"type":915,"tag":25,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":919,"value":1123},"sudo systemctl start myapp.service",{"type":919,"value":65},{"data":1126,"body":1127},{},{"type":912,"children":1128},[1129],{"type":915,"tag":21,"props":1130,"children":1131},{},[1132,1134,1140,1142,1148],{"type":919,"value":1133},"Убедитесь, что сервис работает без ошибок, проверив его статус (",{"type":915,"tag":25,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":919,"value":1139},"systemctl status myapp.service",{"type":919,"value":1141},") и логи (",{"type":915,"tag":25,"props":1143,"children":1145},{"className":1144},[],[1146],{"type":919,"value":1147},"sudo journalctl -u myapp.service -n 50",{"type":919,"value":65},[1150],{"id":1151,"title":1152,"appliesTo":1153,"author":11,"body":1156,"canonical":845,"code":2020,"createdAt":2021,"description":2022,"difficulty":848,"draft":849,"estimatedTime":2023,"extension":851,"faq":2024,"howToSteps":2037,"howToTotalTime":2056,"image":845,"keywords":2057,"locale":890,"meta":2066,"navigation":129,"path":897,"platform":893,"related":2067,"section":2071,"seo":2072,"severity":2073,"stem":2074,"summary":2075,"tags":2076,"twitterCreator":845,"twitterSite":845,"type":2081,"updatedAt":2021,"__hash__":2082},"content_ru/errors/linux/systemd-failed-to-start.md","systemd-failed-to-start: причины и методы исправления ошибки запуска",[1154,7,8,1155,10],"systemd 245+","CentOS 8+",{"type":13,"value":1157,"toc":2004},[1158,1165,1176,1183,1197,1201,1204,1274,1278,1284,1287,1365,1381,1385,1388,1509,1513,1619,1623,1626,1716,1720,1786,1788,1792,1795,1920,1924,1927,2001],[16,1159,1161,1162],{"id":1160},"что-означает-ошибка-systemd-failed-to-start","Что означает ошибка ",[25,1163,1164],{},"systemd-failed-to-start",[21,1166,1167,1168,1171,1172,1175],{},"Ошибка ",[51,1169,1170],{},"Failed to start"," — это общий статус, который systemd присваивает службе (юниту), когда процесс её запуска завершился с ненулевым кодом возврата, превысил заданный таймаут или столкнулся с критической проблемой при инициализации. В выводе команды ",[25,1173,1174],{},"systemctl status"," она выглядит как:",[96,1177,1181],{"className":1178,"code":1180,"language":919},[1179],"language-text","● some-service.service - Some Service Description\n   Loaded: loaded (/etc/systemd/system/some-service.service; enabled; vendor preset: enabled)\n   Active: **failed** (Result: exit-code) since Thu 2026-02-15 10:30:00 MSK; 1min 30s ago\n  Process: 1234 ExecStart=/usr/bin/some-service (code=exited, status=1/FAILURE)\n",[25,1182,1180],{"__ignoreMap":101},[21,1184,1185,1186,757,1189,1192,1193,1196],{},"Ключевые флаги: ",[25,1187,1188],{},"Active: failed",[25,1190,1191],{},"Result: exit-code"," (или ",[25,1194,1195],{},"timeout","). Эта ошибка блокирует работу сервиса и может помешать загрузке системы, если юнит критичен.",[16,1198,1200],{"id":1199},"причины-возникновения","Причины возникновения",[21,1202,1203],{},"Причины носят конкретный технический характер:",[44,1205,1206,1226,1238,1244,1255,1264],{},[47,1207,1208,407,1211,1213,1214,1216,1217,61,1219,1222,1223,1225],{},[51,1209,1210],{},"Некорректный конфигурационный файл юнита",[25,1212,93],{},"). Ошибки в секциях ",[25,1215,316],{}," (неверный путь в ",[25,1218,693],{},[25,1220,1221],{},"ExecStartPre","), ",[25,1224,390],{}," или синтаксис.",[47,1227,1228,1231,1232,1235,1236,65],{},[51,1229,1230],{},"Недостаток прав доступа",". Служба пытается прочитать/записать в каталог, к которому у неё нет прав (например, ",[25,1233,1234],{},"/var/log/app/","), или запускается от неправильного пользователя (",[25,1237,341],{},[47,1239,1240,1243],{},[51,1241,1242],{},"Конфликт ресурсов",". Порт уже занят другим процессом, недостаточно памяти (OOM Killer), не хватает дескрипторов файлов.",[47,1245,1246,1249,1250,587,1252,1254],{},[51,1247,1248],{},"Зависимости не выполнены",". Указанные в ",[25,1251,308],{},[25,1253,293],{}," службы не запустились или завершились с ошибкой.",[47,1256,1257,1260,1261,1263],{},[51,1258,1259],{},"Повреждение бинарного файла или зависимостей приложения",". Файл, указанный в ",[25,1262,693],{},", отсутствует, неисправен или не может загрузить нужные библиотеки.",[47,1265,1266,1269,1270,1273],{},[51,1267,1268],{},"Превышение таймаута",". Приложение долго не отвечает на запросы инициализации, и systemd убивает его по истечении ",[25,1271,1272],{},"TimeoutStartSec="," (по умолчанию 90 сек).",[16,1275,1277],{"id":1276},"способы-решения","Способы решения",[675,1279,1281,1282],{"id":1280},"способ-1-анализ-логов-службы-через-journalctl","Способ 1: Анализ логов службы через ",[25,1283,596],{},[21,1285,1286],{},"Это первый и самый важный шаг. Логи systemd содержат детальный вывод программы.",[44,1288,1289,1295,1322,1339],{},[47,1290,1291,1292,65],{},"Узнайте точное имя службы (например, ",[25,1293,1294],{},"nginx.service",[47,1296,1297,1298,1301,1302],{},"Выполните команду для просмотра логов ",[51,1299,1300],{},"за текущую загрузку",":\n",[96,1303,1305],{"className":98,"code":1304,"language":100,"meta":101,"style":101},"journalctl -u nginx.service -b --no-pager\n",[25,1306,1307],{"__ignoreMap":101},[105,1308,1309,1311,1313,1316,1319],{"class":107,"line":108},[105,1310,596],{"class":142},[105,1312,617],{"class":118},[105,1314,1315],{"class":122}," nginx.service",[105,1317,1318],{"class":118}," -b",[105,1320,1321],{"class":118}," --no-pager\n",[47,1323,1324,1325,61,1327,61,1330,61,1333,61,1336,32],{},"Внимательно изучите последние 20-30 строк. Ищите слова ",[51,1326,586],{},[51,1328,1329],{},"Error",[51,1331,1332],{},"(code=exited, status=...)",[51,1334,1335],{},"Permission denied",[51,1337,1338],{},"No such file or directory",[47,1340,1341,1342],{},"Если лог обширный, фильтруйте по уровню ошибки:\n",[96,1343,1345],{"className":98,"code":1344,"language":100,"meta":101,"style":101},"journalctl -u nginx.service -b -p err --no-pager\n",[25,1346,1347],{"__ignoreMap":101},[105,1348,1349,1351,1353,1355,1357,1360,1363],{"class":107,"line":108},[105,1350,596],{"class":142},[105,1352,617],{"class":118},[105,1354,1315],{"class":122},[105,1356,1318],{"class":118},[105,1358,1359],{"class":118}," -p",[105,1361,1362],{"class":122}," err",[105,1364,1321],{"class":118},[150,1366,1367],{},[21,1368,420,1369,1372,1373,1376,1377,1380],{},[51,1370,1371],{},"Совет",": Добавьте флаг ",[25,1374,1375],{},"-e"," для открытия лога сразу в конце, или ",[25,1378,1379],{},"-f"," для отслеживания в реальном времени при перезапуске службы.",[675,1382,1384],{"id":1383},"способ-2-проверка-и-исправление-конфигурационного-файла","Способ 2: Проверка и исправление конфигурационного файла",[21,1386,1387],{},"Ошибки в юнит-файле — частая причина.",[44,1389,1390,1421,1443,1494],{},[47,1391,1392,1393],{},"Найдите файл службы:\n",[96,1394,1396],{"className":98,"code":1395,"language":100,"meta":101,"style":101},"systemctl status nginx.service | grep Loaded\n# Вывод: Loaded: loaded (/etc/systemd/system/nginx.service; enabled; ...)\n",[25,1397,1398,1416],{"__ignoreMap":101},[105,1399,1400,1402,1404,1406,1410,1413],{"class":107,"line":108},[105,1401,462],{"class":142},[105,1403,559],{"class":122},[105,1405,1315],{"class":122},[105,1407,1409],{"class":1408},"szBVR"," |",[105,1411,1412],{"class":142}," grep",[105,1414,1415],{"class":122}," Loaded\n",[105,1417,1418],{"class":107,"line":115},[105,1419,1420],{"class":111},"# Вывод: Loaded: loaded (/etc/systemd/system/nginx.service; enabled; ...)\n",[47,1422,1423,1424,1442],{},"Проверьте синтаксис:\n",[96,1425,1427],{"className":98,"code":1426,"language":100,"meta":101,"style":101},"sudo systemd-analyze verify /etc/systemd/system/nginx.service\n",[25,1428,1429],{"__ignoreMap":101},[105,1430,1431,1433,1436,1439],{"class":107,"line":108},[105,1432,53],{"class":142},[105,1434,1435],{"class":122}," systemd-analyze",[105,1437,1438],{"class":122}," verify",[105,1440,1441],{"class":122}," /etc/systemd/system/nginx.service\n","\nКоманда покажет строку с ошибкой, если она есть (например, \"Invalid command 'Execstar', not part of a unit configuration\").",[47,1444,1445,1446,1449,1450],{},"Откройте файл в редакторе (",[25,1447,1448],{},"sudo nano /etc/systemd/system/nginx.service",") и проверьте:\n",[271,1451,1452,1466,1476,1487],{},[47,1453,1454,1455,61,1457,1459,1460,587,1463,724],{},"Пути в ",[25,1456,693],{},[25,1458,1221],{},": существуют ли они? (",[25,1461,1462],{},"which some-binary",[25,1464,1465],{},"ls -la /path/to/file",[47,1467,1468,1469,1472,1473,65],{},"Права на исполняемый файл (",[25,1470,1471],{},"ls -l /usr/bin/some-binary"," — должен быть ",[25,1474,1475],{},"-rwxr-xr-x",[47,1477,1478,1479,1481,1482,757,1484,1486],{},"Секцию ",[25,1480,316],{},": правильно ли указаны ",[25,1483,341],{},[25,1485,345],{},"? Существует ли такой пользователь/группа?",[47,1488,1489,1490,1493],{},"Директиву ",[25,1491,1492],{},"WorkingDirectory=",": существует ли каталог?",[47,1495,1496,1497],{},"После исправлений выполните:\n",[96,1498,1499],{"className":98,"code":444,"language":100,"meta":101,"style":101},[25,1500,1501],{"__ignoreMap":101},[105,1502,1503,1505,1507],{"class":107,"line":108},[105,1504,53],{"class":142},[105,1506,453],{"class":122},[105,1508,456],{"class":122},[675,1510,1512],{"id":1511},"способ-3-проверка-зависимостей-и-конфликтов-портовресурсов","Способ 3: Проверка зависимостей и конфликтов портов/ресурсов",[44,1514,1515,1547,1573],{},[47,1516,1517,1520,1521,1546],{},[51,1518,1519],{},"Проверьте, не занят ли порт"," (если служба сетевая):\n",[96,1522,1524],{"className":98,"code":1523,"language":100,"meta":101,"style":101},"sudo ss -tulpn | grep :80  # Замените 80 на порт вашей службы\n",[25,1525,1526],{"__ignoreMap":101},[105,1527,1528,1530,1533,1536,1538,1540,1543],{"class":107,"line":108},[105,1529,53],{"class":142},[105,1531,1532],{"class":122}," ss",[105,1534,1535],{"class":118}," -tulpn",[105,1537,1409],{"class":1408},[105,1539,1412],{"class":142},[105,1541,1542],{"class":122}," :80",[105,1544,1545],{"class":111},"  # Замените 80 на порт вашей службы\n","\nЕсли порт занят другим процессом, найдите и остановите его или измените порт в конфиге службы.",[47,1548,1549,1301,1552,1569,1570,32],{},[51,1550,1551],{},"Проверьте, все ли требуемые службы работают",[96,1553,1555],{"className":98,"code":1554,"language":100,"meta":101,"style":101},"systemctl list-dependencies nginx.service --reverse\n",[25,1556,1557],{"__ignoreMap":101},[105,1558,1559,1561,1564,1566],{"class":107,"line":108},[105,1560,462],{"class":142},[105,1562,1563],{"class":122}," list-dependencies",[105,1565,1315],{"class":122},[105,1567,1568],{"class":118}," --reverse\n","\nЭто покажет, какие службы зависят от nginx. Убедитесь, что они в состоянии ",[25,1571,1572],{},"active (running)",[47,1574,1575,1301,1578,1618],{},[51,1576,1577],{},"Проверьте наличие свободных ресурсов",[96,1579,1581],{"className":98,"code":1580,"language":100,"meta":101,"style":101},"free -h        # Память\ndf -h /var     # Дисковое пространство (особенно для логов)\nulimit -n      # Лимит дескрипторов файлов (может быть мал)\n",[25,1582,1583,1594,1607],{"__ignoreMap":101},[105,1584,1585,1588,1591],{"class":107,"line":108},[105,1586,1587],{"class":142},"free",[105,1589,1590],{"class":118}," -h",[105,1592,1593],{"class":111},"        # Память\n",[105,1595,1596,1599,1601,1604],{"class":107,"line":115},[105,1597,1598],{"class":142},"df",[105,1600,1590],{"class":118},[105,1602,1603],{"class":122}," /var",[105,1605,1606],{"class":111},"     # Дисковое пространство (особенно для логов)\n",[105,1608,1609,1612,1615],{"class":107,"line":126},[105,1610,1611],{"class":118},"ulimit",[105,1613,1614],{"class":118}," -n",[105,1616,1617],{"class":111},"      # Лимит дескрипторов файлов (может быть мал)\n","\nНедостаток любого ресурса может привести к падению службы при старте.",[675,1620,1622],{"id":1621},"способ-4-восстановление-из-пакета-или-ручная-переустановка","Способ 4: Восстановление из пакета или ручная переустановка",[21,1624,1625],{},"Если служба установлена из пакетного менеджера (apt, dnf, yum), её конфигурация могла быть повреждена.",[44,1627,1628,1674,1697],{},[47,1629,1630,1301,1633,1666,1667,1670,1671,32],{},[51,1631,1632],{},"Debian/Ubuntu",[96,1634,1636],{"className":98,"code":1635,"language":100,"meta":101,"style":101},"sudo apt update\nsudo apt install --reinstall nginx  # Замените nginx на имя пакета\n",[25,1637,1638,1648],{"__ignoreMap":101},[105,1639,1640,1642,1645],{"class":107,"line":108},[105,1641,53],{"class":142},[105,1643,1644],{"class":122}," apt",[105,1646,1647],{"class":122}," update\n",[105,1649,1650,1652,1654,1657,1660,1663],{"class":107,"line":115},[105,1651,53],{"class":142},[105,1653,1644],{"class":122},[105,1655,1656],{"class":122}," install",[105,1658,1659],{"class":118}," --reinstall",[105,1661,1662],{"class":122}," nginx",[105,1664,1665],{"class":111},"  # Замените nginx на имя пакета\n","\nЭто восстановит файлы из ",[25,1668,1669],{},"/usr/share/doc/nginx/examples/"," или оригинальные конфиги в ",[25,1672,1673],{},"/etc/",[47,1675,1676,1301,1679],{},[51,1677,1678],{},"RHEL/CentOS/Fedora",[96,1680,1682],{"className":98,"code":1681,"language":100,"meta":101,"style":101},"sudo dnf reinstall nginx\n",[25,1683,1684],{"__ignoreMap":101},[105,1685,1686,1688,1691,1694],{"class":107,"line":108},[105,1687,53],{"class":142},[105,1689,1690],{"class":122}," dnf",[105,1692,1693],{"class":122}," reinstall",[105,1695,1696],{"class":122}," nginx\n",[47,1698,1699,1700,1703,1704,1707,1708,1711,1712,1715],{},"После переустановки ",[51,1701,1702],{},"не перезаписывайте"," свои кастомные настройки в ",[25,1705,1706],{},"/etc/nginx/nginx.conf"," (если они были), если пакетный менеджер спросит. Сравните старый и новый файлы конфигурации юнита (",[25,1709,1710],{},"/lib/systemd/system/nginx.service"," vs ",[25,1713,1714],{},"/etc/systemd/system/nginx.service","). Часто правильнее скопировать свои правки в новый оригинальный файл, а не использовать старый повреждённый.",[16,1717,1719],{"id":1718},"профилактика","Профилактика",[271,1721,1722,1732,1749,1760,1776],{},[47,1723,1724,1727,1728,1731],{},[51,1725,1726],{},"Всегда проверяйте синтаксис"," конфигурационных файлов службы и самого приложения (например, ",[25,1729,1730],{},"nginx -t",") перед перезагрузкой systemd.",[47,1733,1734,1740,1741,1744,1745,587,1747,32],{},[51,1735,1736,1737],{},"Используйте ",[25,1738,1739],{},"systemctl daemon-reload"," после ",[296,1742,1743],{},"любого"," изменения файла юнита в ",[25,1746,89],{},[25,1748,161],{},[47,1750,1751,407,1754,61,1756,1759],{},[51,1752,1753],{},"Настраивайте разумные таймауты",[25,1755,1272],{},[25,1757,1758],{},"TimeoutStopSec=",") для долгих служб, чтобы избежать ложных срабатываний.",[47,1761,1762,1765,1766,61,1769,61,1772,1775],{},[51,1763,1764],{},"Следите за правами"," на каталоги, с которыми работает служба (",[25,1767,1768],{},"/var/log/",[25,1770,1771],{},"/var/lib/",[25,1773,1774],{},"/run/","). Рекомендуется создавать отдельного пользователя/группу для каждой службы.",[47,1777,1778,1781,1782,1785],{},[51,1779,1780],{},"Периодически проверяйте логи"," на предмет предупреждений (",[25,1783,1784],{},"journalctl -u \u003Cслужба>.service -p warning",") до того, как они превратятся в ошибки.",[532,1787],{},[675,1789,1791],{"id":1790},"способ-n-откат-к-предыдущей-рабочей-конфигурации-если-используется-git","Способ N: Откат к предыдущей рабочей конфигурации (если используется Git)",[21,1793,1794],{},"Если конфигурационные файлы службы находятся под контролем версий (что хорошая практика):",[44,1796,1797,1830,1863,1917],{},[47,1798,1799,1800],{},"Определите, когда служба последний раз работала:\n",[96,1801,1803],{"className":98,"code":1802,"language":100,"meta":101,"style":101},"sudo journalctl -u nginx.service -b --no-pager | grep -i \"started\\|failed\"\n",[25,1804,1805],{"__ignoreMap":101},[105,1806,1807,1809,1811,1813,1815,1817,1820,1822,1824,1827],{"class":107,"line":108},[105,1808,53],{"class":142},[105,1810,614],{"class":122},[105,1812,617],{"class":118},[105,1814,1315],{"class":122},[105,1816,1318],{"class":118},[105,1818,1819],{"class":118}," --no-pager",[105,1821,1409],{"class":1408},[105,1823,1412],{"class":142},[105,1825,1826],{"class":118}," -i",[105,1828,1829],{"class":122}," \"started\\|failed\"\n",[47,1831,1832,1833],{},"Найдите коммит, после которого начались сбои:\n",[96,1834,1836],{"className":98,"code":1835,"language":100,"meta":101,"style":101},"cd /etc/systemd/system/\ngit log --oneline -p -- nginx.service\n",[25,1837,1838,1844],{"__ignoreMap":101},[105,1839,1840,1842],{"class":107,"line":108},[105,1841,119],{"class":118},[105,1843,123],{"class":122},[105,1845,1846,1849,1852,1855,1857,1860],{"class":107,"line":115},[105,1847,1848],{"class":142},"git",[105,1850,1851],{"class":122}," log",[105,1853,1854],{"class":118}," --oneline",[105,1856,1359],{"class":118},[105,1858,1859],{"class":118}," --",[105,1861,1862],{"class":122}," nginx.service\n",[47,1864,1865,1866],{},"Временно верните предыдущую версию файла:\n",[96,1867,1869],{"className":98,"code":1868,"language":100,"meta":101,"style":101},"sudo git checkout \u003Cхэш_коммита> -- nginx.service\nsudo systemctl daemon-reload\nsudo systemctl restart nginx.service\n",[25,1870,1871,1898,1906],{"__ignoreMap":101},[105,1872,1873,1875,1878,1881,1884,1887,1891,1894,1896],{"class":107,"line":108},[105,1874,53],{"class":142},[105,1876,1877],{"class":122}," git",[105,1879,1880],{"class":122}," checkout",[105,1882,1883],{"class":1408}," \u003C",[105,1885,1886],{"class":122},"хэш_коммит",[105,1888,1890],{"class":1889},"sVt8B","а",[105,1892,1893],{"class":1408},">",[105,1895,1859],{"class":118},[105,1897,1862],{"class":122},[105,1899,1900,1902,1904],{"class":107,"line":115},[105,1901,53],{"class":142},[105,1903,453],{"class":122},[105,1905,456],{"class":122},[105,1907,1908,1910,1912,1915],{"class":107,"line":126},[105,1909,53],{"class":142},[105,1911,453],{"class":122},[105,1913,1914],{"class":122}," restart",[105,1916,1862],{"class":122},[47,1918,1919],{},"Если это помогло, проанализируйте, какие именно изменения сломали службу, и внесите их более аккуратно.",[675,1921,1923],{"id":1922},"способ-n1-запуск-службы-вручную-для-отладки","Способ N+1: Запуск службы вручную для отладки",[21,1925,1926],{},"Иногда systemd \"затыкает\" вывод ошибки. Запустите исполняемый файл напрямую от того же пользователя, под которым работает служба.",[44,1928,1929,1935],{},[47,1930,1931,1932,1934],{},"Узнайте пользователя из юнит-файла (",[25,1933,341],{},") или из лога.",[47,1936,1937,1938,1993,1994,587,1997,2000],{},"Выполните:\n",[96,1939,1941],{"className":98,"code":1940,"language":100,"meta":101,"style":101},"sudo -u \u003Cпользователь> /usr/bin/some-service --verbose\n# или, если служба запускает скрипт:\nsudo -u \u003Cпользователь> /bin/bash -x /path/to/startup-script.sh\n",[25,1942,1943,1965,1970],{"__ignoreMap":101},[105,1944,1945,1947,1949,1951,1954,1957,1959,1962],{"class":107,"line":108},[105,1946,53],{"class":142},[105,1948,617],{"class":118},[105,1950,1883],{"class":1408},[105,1952,1953],{"class":122},"пользовател",[105,1955,1956],{"class":1889},"ь",[105,1958,1893],{"class":1408},[105,1960,1961],{"class":122}," /usr/bin/some-service",[105,1963,1964],{"class":118}," --verbose\n",[105,1966,1967],{"class":107,"line":115},[105,1968,1969],{"class":111},"# или, если служба запускает скрипт:\n",[105,1971,1972,1974,1976,1978,1980,1982,1984,1987,1990],{"class":107,"line":126},[105,1973,53],{"class":142},[105,1975,617],{"class":118},[105,1977,1883],{"class":1408},[105,1979,1953],{"class":122},[105,1981,1956],{"class":1889},[105,1983,1893],{"class":1408},[105,1985,1986],{"class":122}," /bin/bash",[105,1988,1989],{"class":118}," -x",[105,1991,1992],{"class":122}," /path/to/startup-script.sh\n","\nФлаги ",[25,1995,1996],{},"--verbose",[25,1998,1999],{},"-x"," (для bash) дадут подробный вывод. Часто ошибка становится очевидной при прямом запуске.",[824,2002,2003],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":101,"searchDepth":115,"depth":115,"links":2005},[2006,2008,2009,2016],{"id":1160,"depth":115,"text":2007},"Что означает ошибка systemd-failed-to-start",{"id":1199,"depth":115,"text":1200},{"id":1276,"depth":115,"text":1277,"children":2010},[2011,2013,2014,2015],{"id":1280,"depth":126,"text":2012},"Способ 1: Анализ логов службы через journalctl",{"id":1383,"depth":126,"text":1384},{"id":1511,"depth":126,"text":1512},{"id":1621,"depth":126,"text":1622},{"id":1718,"depth":115,"text":1719,"children":2017},[2018,2019],{"id":1790,"depth":126,"text":1791},{"id":1922,"depth":126,"text":1923},"systemd-failed","2026-02-15 16:38:58","Ошибка Failed to start в systemd мешает работе сервисов. Узнайте, как быстро диагностировать проблему через journalctl и исправить её проверенными способами. Пошаговая инструкция.","15-30 минут",[2025,2028,2031,2034],{"question":2026,"answer":2027},"Что означает ошибка 'Failed to start' в выводе systemctl?","Эта ошибка означает, что systemd не смог успешно запустить указанную службу (юнит). Причина может быть в самой службе, её конфигурации, зависимостях или конфликте ресурсов.",{"question":2029,"answer":2030},"Где искать подробную информацию о причине сбоя systemd?","Используйте команду `journalctl -u \u003Cимя_службы>.service --no-pager -b`, чтобы увидеть логи конкретной службы за текущую загрузку. Ключевые слова 'Failed', 'Error', 'exit code' укажут на проблему.",{"question":2032,"answer":2033},"Может ли ошибка 'Failed to start' быть вызвана недостатком прав?","Да, часто. Если служба запускается от неправильного пользователя (например, root, а должна от nginx) или в конфиге указан недоступный путь, systemd не сможет её запустить.",{"question":2035,"answer":2036},"Как временно обойти проблему, чтобы система загрузилась?","Можно отключить problematic юнит на загрузку командой `sudo systemctl disable \u003Cслужба>.service` или запустить систему в режиме восстановления, чтобы исправить конфигурацию.",[2038,2041,2044,2047,2050,2053],{"name":2039,"text":2040},"Проверьте точное состояние службы и код ошибки","Выполните `systemctl status \u003Cслужба>.service`. В разделе 'Active:' и последних строках лога будет указан код ошибки (например, 'exit-code' или 'timeout'). Запишите его.",{"name":2042,"text":2043},"Изучите полные логи службы через journalctl","Используйте `journalctl -u \u003Cслужба>.service -b --no-pager`. Прокрутите лог до конца и найдите строки с 'Failed', 'error', 'Permission denied', 'No such file'. Это ключ к причине.",{"name":2045,"text":2046},"Проверьте конфигурационный файл юнита на синтаксис","Выполните `systemd-analyze verify /etc/systemd/system/\u003Cслужба>.service` (или путь к вашему файлу). Команда проверит синтаксис и укажет на ошибки в секциях [Service], [Install].",{"name":2048,"text":2049},"Восстановите или переустановите проблемный пакет (если применимо)","Если служба относится к пакету (например, nginx, postgresql), попробуйте `sudo apt reinstall \u003Cпакет>` (Debian/Ubuntu) или `sudo dnf reinstall \u003Cпакет>` (RHEL/Fedora). Это восстановит оригинальные файлы конфигурации.",{"name":2051,"text":2052},"Вручную исправьте найденную проблему","В зависимости от логов: исправьте путь в `ExecStart`, права на файлы (`chmod`, `chown`), разрешите конфликт портов, добавьте недостающие зависимости (`Requires=`, `After=`) в конфиг юнита.",{"name":2054,"text":2055},"Перезапустите и включите службу","После исправлений выполните `sudo systemctl daemon-reload`, затем `sudo systemctl restart \u003Cслужба>.service` и `sudo systemctl enable \u003Cслужба>.service`. Проверьте статус снова.","PT20M",[2058,2059,2060,2061,2062,2063,2064,2065],"systemd failed to start","ошибка systemd юнит не запустился","failed to start служба systemd","как исправить systemd ошибка запуска","journalctl ошибка юнита","systemctl status failed","systemd dependency failed","восстановление systemd службы",{},[2068,2069,2070],"/errors/linux/systemd-unit-not-found","/errors/linux/systemd-circular-dependency","/guides/linux/systemd-service-creation","Ошибки Linux",{"title":1152,"description":2022},"high","errors/linux/systemd-failed-to-start","Статья подробно разбирает ошибку 'Failed to start' в systemd, её основные причины и 4 проверенных способа решения. Вы научитесь анализировать логи и восстанавливать работу служб.",[2077,903,462,2078,596,2079,2080],"ошибки linux","администрирование","service","boot","error","eIns-0UfD2cGVn2HufRiXZrk1AiyCuiXxeXglmXIzm0"]