[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/service-management":3,"mdc-fb2pm1-key":1117,"mdc-bl730s-key":1141,"mdc--ako517-key":1165,"mdc--12ala4-key":1186,"mdc-mdmazc-key":1203,"mdc-mgexju-key":1219,"mdc-52np0t-key":1249,"mdc-n93wbf-key":1272,"mdc--5eviuc-key":1313,"related-/guides/linux/ubuntu-service-management,/guides/linux/journalctl-usage,/errors/linux/systemd-failed-to-start":1356},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":1051,"code":1051,"createdAt":1052,"description":1053,"difficulty":1054,"draft":1055,"estimatedTime":1056,"extension":1057,"faq":1058,"howToSteps":1071,"howToTotalTime":1087,"image":1051,"keywords":1088,"locale":1097,"meta":1098,"navigation":99,"path":1099,"platform":1100,"related":1101,"section":1105,"seo":1106,"severity":1107,"stem":1108,"summary":1109,"tags":1110,"twitterCreator":1051,"twitterSite":1051,"type":1115,"updatedAt":1052,"__hash__":1116},"content_ru/guides/linux/service-management.md","Управление сервисами в Linux: полное руководство по systemd",[7,8,9,10],"Ubuntu 22.04+","Debian 11+","CentOS 7/8","Fedora 35+","FixPedia Team",{"type":13,"value":14,"toc":1040},"minimark",[15,20,24,28,58,62,65,153,172,176,179,288,307,321,324,328,335,404,424,428,434,572,579,605,609,616,802,806,855,859,1036],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23],"p",{},"Systemd стал стандартом для инициализации и управления службами в большинстве современных дистрибутивов Linux (Ubuntu, Debian, CentOS, Fedora). Понимание управления сервисами — ключевой навык для системного администратора и разработчика, работающего с серверами. После прохождения этого гайда вы сможете уверенно запускать, останавливать, настраивать автозапуск и диагностировать проблемы с любыми сервисами, а также создавать собственные.",[16,25,27],{"id":26},"требования-подготовка","Требования / Подготовка",[29,30,31,43,55],"ol",{},[32,33,34,38,39,42],"li",{},[35,36,37],"strong",{},"Доступ к терминалу"," с правами ",[35,40,41],{},"sudo"," (или root).",[32,44,45,46,49,50,54],{},"Дистрибутив Linux, использующий ",[35,47,48],{},"systemd"," (проверьте командой ",[51,52,53],"code",{},"systemctl --version",").",[32,56,57],{},"Базовое понимание командной строки.",[16,59,61],{"id":60},"шаг-1-проверка-наличия-systemd-и-список-юнитов","Шаг 1: Проверка наличия systemd и список юнитов",[21,63,64],{},"Убедимся, что система использует systemd, и посмотрим, какие сервисы (юниты) доступны.",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-bash shiki shiki-themes github-light github-dark","# Проверка версии systemd\nsystemctl --version\n\n# Показать все загруженные юниты (сервисы, таймеры, сокеты и т.д.)\nsystemctl list-units --type=service --state=running\n\n# Показать ВСЕ доступные юниты, включая неактивные\nsystemctl list-unit-files --type=service | head -20\n","bash","",[51,73,74,83,94,101,107,122,127,133],{"__ignoreMap":71},[75,76,79],"span",{"class":77,"line":78},"line",1,[75,80,82],{"class":81},"sJ8bj","# Проверка версии systemd\n",[75,84,86,90],{"class":77,"line":85},2,[75,87,89],{"class":88},"sScJk","systemctl",[75,91,93],{"class":92},"sj4cs"," --version\n",[75,95,97],{"class":77,"line":96},3,[75,98,100],{"emptyLinePlaceholder":99},true,"\n",[75,102,104],{"class":77,"line":103},4,[75,105,106],{"class":81},"# Показать все загруженные юниты (сервисы, таймеры, сокеты и т.д.)\n",[75,108,110,112,116,119],{"class":77,"line":109},5,[75,111,89],{"class":88},[75,113,115],{"class":114},"sZZnC"," list-units",[75,117,118],{"class":92}," --type=service",[75,120,121],{"class":92}," --state=running\n",[75,123,125],{"class":77,"line":124},6,[75,126,100],{"emptyLinePlaceholder":99},[75,128,130],{"class":77,"line":129},7,[75,131,132],{"class":81},"# Показать ВСЕ доступные юниты, включая неактивные\n",[75,134,136,138,141,143,147,150],{"class":77,"line":135},8,[75,137,89],{"class":88},[75,139,140],{"class":114}," list-unit-files",[75,142,118],{"class":92},[75,144,146],{"class":145},"szBVR"," |",[75,148,149],{"class":88}," head",[75,151,152],{"class":92}," -20\n",[21,154,155,156,159,160,163,164,167,168,171],{},"Ключевые статусы юнитов: ",[51,157,158],{},"loaded"," (файл юнита найден), ",[51,161,162],{},"active"," (запущен), ",[51,165,166],{},"inactive"," (остановлен), ",[51,169,170],{},"failed"," (упал с ошибкой).",[16,173,175],{"id":174},"шаг-2-базовые-операции-управления-состоянием","Шаг 2: Базовые операции управления состоянием",[21,177,178],{},"Здесь основные команды для повседневного контроля.",[66,180,182],{"className":68,"code":181,"language":70,"meta":71,"style":71},"# Запустить сервис немедленно (не навсегда)\nsudo systemctl start nginx\n\n# Остановить сервис\nsudo systemctl stop nginx\n\n# Перезапустить (остановить и снова запустить)\nsudo systemctl restart nginx\n\n# Перезагрузить (отправить SIGHUP, если сервис поддерживает)\nsudo systemctl reload nginx\n\n# Проверить статус (самая информативная команда)\nsudo systemctl status nginx\n",[51,183,184,189,202,206,211,222,226,231,242,247,253,265,270,276],{"__ignoreMap":71},[75,185,186],{"class":77,"line":78},[75,187,188],{"class":81},"# Запустить сервис немедленно (не навсегда)\n",[75,190,191,193,196,199],{"class":77,"line":85},[75,192,41],{"class":88},[75,194,195],{"class":114}," systemctl",[75,197,198],{"class":114}," start",[75,200,201],{"class":114}," nginx\n",[75,203,204],{"class":77,"line":96},[75,205,100],{"emptyLinePlaceholder":99},[75,207,208],{"class":77,"line":103},[75,209,210],{"class":81},"# Остановить сервис\n",[75,212,213,215,217,220],{"class":77,"line":109},[75,214,41],{"class":88},[75,216,195],{"class":114},[75,218,219],{"class":114}," stop",[75,221,201],{"class":114},[75,223,224],{"class":77,"line":124},[75,225,100],{"emptyLinePlaceholder":99},[75,227,228],{"class":77,"line":129},[75,229,230],{"class":81},"# Перезапустить (остановить и снова запустить)\n",[75,232,233,235,237,240],{"class":77,"line":135},[75,234,41],{"class":88},[75,236,195],{"class":114},[75,238,239],{"class":114}," restart",[75,241,201],{"class":114},[75,243,245],{"class":77,"line":244},9,[75,246,100],{"emptyLinePlaceholder":99},[75,248,250],{"class":77,"line":249},10,[75,251,252],{"class":81},"# Перезагрузить (отправить SIGHUP, если сервис поддерживает)\n",[75,254,256,258,260,263],{"class":77,"line":255},11,[75,257,41],{"class":88},[75,259,195],{"class":114},[75,261,262],{"class":114}," reload",[75,264,201],{"class":114},[75,266,268],{"class":77,"line":267},12,[75,269,100],{"emptyLinePlaceholder":99},[75,271,273],{"class":77,"line":272},13,[75,274,275],{"class":81},"# Проверить статус (самая информативная команда)\n",[75,277,279,281,283,286],{"class":77,"line":278},14,[75,280,41],{"class":88},[75,282,195],{"class":114},[75,284,285],{"class":114}," status",[75,287,201],{"class":114},[21,289,290,291,294,295,298,299,302,303,306],{},"В выводе ",[51,292,293],{},"status"," смотрите на строку ",[51,296,297],{},"Active:"," и последние логи в разделе ",[51,300,301],{},"journal",". Если статус ",[51,304,305],{},"failed (Result: exit-code)",", смотрите логи в следующем шаге.",[308,309,310],"blockquote",{},[21,311,312,313,316,317,320],{},"💡 ",[35,314,315],{},"Совет",": Для быстрого перезапуска с очисткой состояния используйте ",[51,318,319],{},"sudo systemctl try-restart nginx"," — он не запустит сервис, если тот уже остановлен.",[322,323],"in-article-ad",{},[16,325,327],{"id":326},"шаг-3-настройка-автозапуска-включениеотключение","Шаг 3: Настройка автозапуска (включение/отключение)",[21,329,330,331,334],{},"Автозапуск управляется через символические ссылки в каталогах ",[51,332,333],{},"/etc/systemd/system/",".",[66,336,338],{"className":68,"code":337,"language":70,"meta":71,"style":71},"# Включить автозапуск при следующей загрузке системы\nsudo systemctl enable nginx\n# Создаст ссылку: /etc/systemd/system/multi-user.target.wants/nginx.service -> /lib/systemd/system/nginx.service\n\n# Отключить автозапуск (ссылку удалит, сам файл сервиса останется)\nsudo systemctl disable nginx\n\n# Проверить, включён ли сервис в автозагрузку\nsystemctl is-enabled nginx\n# Вывод: enabled, disabled, static, masked\n",[51,339,340,345,356,361,365,370,381,385,390,399],{"__ignoreMap":71},[75,341,342],{"class":77,"line":78},[75,343,344],{"class":81},"# Включить автозапуск при следующей загрузке системы\n",[75,346,347,349,351,354],{"class":77,"line":85},[75,348,41],{"class":88},[75,350,195],{"class":114},[75,352,353],{"class":114}," enable",[75,355,201],{"class":114},[75,357,358],{"class":77,"line":96},[75,359,360],{"class":81},"# Создаст ссылку: /etc/systemd/system/multi-user.target.wants/nginx.service -> /lib/systemd/system/nginx.service\n",[75,362,363],{"class":77,"line":103},[75,364,100],{"emptyLinePlaceholder":99},[75,366,367],{"class":77,"line":109},[75,368,369],{"class":81},"# Отключить автозапуск (ссылку удалит, сам файл сервиса останется)\n",[75,371,372,374,376,379],{"class":77,"line":124},[75,373,41],{"class":88},[75,375,195],{"class":114},[75,377,378],{"class":114}," disable",[75,380,201],{"class":114},[75,382,383],{"class":77,"line":129},[75,384,100],{"emptyLinePlaceholder":99},[75,386,387],{"class":77,"line":135},[75,388,389],{"class":81},"# Проверить, включён ли сервис в автозагрузку\n",[75,391,392,394,397],{"class":77,"line":244},[75,393,89],{"class":88},[75,395,396],{"class":114}," is-enabled",[75,398,201],{"class":114},[75,400,401],{"class":77,"line":249},[75,402,403],{"class":81},"# Вывод: enabled, disabled, static, masked\n",[308,405,406],{},[21,407,408,409,412,413,416,417,420,421,334],{},"⚠️ ",[35,410,411],{},"Важно",": Команда ",[51,414,415],{},"enable"," не запускает сервис сразу. Для одноразового запуска используйте ",[51,418,419],{},"start",", для запуска с включением автозапуска — ",[51,422,423],{},"enable --now",[16,425,427],{"id":426},"шаг-4-диагностика-через-journalctl","Шаг 4: Диагностика через journalctl",[21,429,430,431,334],{},"Логи systemd хранятся в бинарном журнале, доступном через ",[51,432,433],{},"journalctl",[66,435,437],{"className":68,"code":436,"language":70,"meta":71,"style":71},"# Показать логи ВСЕХ сервисов в реальном времени (как tail -f)\nsudo journalctl -f\n\n# Показать логи КОНКРЕТНОГО сервиса\nsudo journalctl -u nginx.service\n\n# Показать логи с момента последней загрузки системы (-b)\nsudo journalctl -u nginx.service -b\n\n# Фильтрация по времени (например, за последние 10 минут)\nsudo journalctl -u nginx.service --since \"10 min ago\"\n\n# Показать только сообщения с уровнем ошибка (error, crit, alert, emerg)\nsudo journalctl -u nginx.service -p err\n\n# Очистить журнал (осторожно! требует место на диске)\nsudo journalctl --vacuum-time=3d  # Оставить логи только за последние 3 дня\n",[51,438,439,444,454,458,463,475,479,484,498,502,507,523,527,532,548,553,559],{"__ignoreMap":71},[75,440,441],{"class":77,"line":78},[75,442,443],{"class":81},"# Показать логи ВСЕХ сервисов в реальном времени (как tail -f)\n",[75,445,446,448,451],{"class":77,"line":85},[75,447,41],{"class":88},[75,449,450],{"class":114}," journalctl",[75,452,453],{"class":92}," -f\n",[75,455,456],{"class":77,"line":96},[75,457,100],{"emptyLinePlaceholder":99},[75,459,460],{"class":77,"line":103},[75,461,462],{"class":81},"# Показать логи КОНКРЕТНОГО сервиса\n",[75,464,465,467,469,472],{"class":77,"line":109},[75,466,41],{"class":88},[75,468,450],{"class":114},[75,470,471],{"class":92}," -u",[75,473,474],{"class":114}," nginx.service\n",[75,476,477],{"class":77,"line":124},[75,478,100],{"emptyLinePlaceholder":99},[75,480,481],{"class":77,"line":129},[75,482,483],{"class":81},"# Показать логи с момента последней загрузки системы (-b)\n",[75,485,486,488,490,492,495],{"class":77,"line":135},[75,487,41],{"class":88},[75,489,450],{"class":114},[75,491,471],{"class":92},[75,493,494],{"class":114}," nginx.service",[75,496,497],{"class":92}," -b\n",[75,499,500],{"class":77,"line":244},[75,501,100],{"emptyLinePlaceholder":99},[75,503,504],{"class":77,"line":249},[75,505,506],{"class":81},"# Фильтрация по времени (например, за последние 10 минут)\n",[75,508,509,511,513,515,517,520],{"class":77,"line":255},[75,510,41],{"class":88},[75,512,450],{"class":114},[75,514,471],{"class":92},[75,516,494],{"class":114},[75,518,519],{"class":92}," --since",[75,521,522],{"class":114}," \"10 min ago\"\n",[75,524,525],{"class":77,"line":267},[75,526,100],{"emptyLinePlaceholder":99},[75,528,529],{"class":77,"line":272},[75,530,531],{"class":81},"# Показать только сообщения с уровнем ошибка (error, crit, alert, emerg)\n",[75,533,534,536,538,540,542,545],{"class":77,"line":278},[75,535,41],{"class":88},[75,537,450],{"class":114},[75,539,471],{"class":92},[75,541,494],{"class":114},[75,543,544],{"class":92}," -p",[75,546,547],{"class":114}," err\n",[75,549,551],{"class":77,"line":550},15,[75,552,100],{"emptyLinePlaceholder":99},[75,554,556],{"class":77,"line":555},16,[75,557,558],{"class":81},"# Очистить журнал (осторожно! требует место на диске)\n",[75,560,562,564,566,569],{"class":77,"line":561},17,[75,563,41],{"class":88},[75,565,450],{"class":114},[75,567,568],{"class":92}," --vacuum-time=3d",[75,570,571],{"class":81},"  # Оставить логи только за последние 3 дня\n",[21,573,574,575,578],{},"Для поиска по тексту в логах используйте стандартный ",[51,576,577],{},"grep",":",[66,580,582],{"className":68,"code":581,"language":70,"meta":71,"style":71},"sudo journalctl -u nginx.service | grep -i \"permission\"\n",[51,583,584],{"__ignoreMap":71},[75,585,586,588,590,592,594,596,599,602],{"class":77,"line":78},[75,587,41],{"class":88},[75,589,450],{"class":114},[75,591,471],{"class":92},[75,593,494],{"class":114},[75,595,146],{"class":145},[75,597,598],{"class":88}," grep",[75,600,601],{"class":92}," -i",[75,603,604],{"class":114}," \"permission\"\n",[16,606,608],{"id":607},"шаг-5-создание-простого-пользовательского-сервиса","Шаг 5: Создание простого пользовательского сервиса",[21,610,611,612,615],{},"Допустим, нужно запускать скрипт ",[51,613,614],{},"/opt/myscript.sh"," при старте системы.",[29,617,618,735],{},[32,619,620,623,624,578,627,702],{},[35,621,622],{},"Создайте файл сервиса"," ",[51,625,626],{},"/etc/systemd/system/myscript.service",[66,628,632],{"className":629,"code":630,"language":631,"meta":71,"style":71},"language-ini shiki shiki-themes github-light github-dark","[Unit]\nDescription=Мой пользовательский скрипт\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/opt/myscript.sh\nRestart=on-failure\nRestartSec=10\nUser=ubuntu\nGroup=ubuntu\n\n[Install]\nWantedBy=multi-user.target\n","ini",[51,633,634,639,644,649,653,658,663,668,673,678,683,688,692,697],{"__ignoreMap":71},[75,635,636],{"class":77,"line":78},[75,637,638],{},"[Unit]\n",[75,640,641],{"class":77,"line":85},[75,642,643],{},"Description=Мой пользовательский скрипт\n",[75,645,646],{"class":77,"line":96},[75,647,648],{},"After=network.target\n",[75,650,651],{"class":77,"line":103},[75,652,100],{"emptyLinePlaceholder":99},[75,654,655],{"class":77,"line":109},[75,656,657],{},"[Service]\n",[75,659,660],{"class":77,"line":124},[75,661,662],{},"Type=simple\n",[75,664,665],{"class":77,"line":129},[75,666,667],{},"ExecStart=/opt/myscript.sh\n",[75,669,670],{"class":77,"line":135},[75,671,672],{},"Restart=on-failure\n",[75,674,675],{"class":77,"line":244},[75,676,677],{},"RestartSec=10\n",[75,679,680],{"class":77,"line":249},[75,681,682],{},"User=ubuntu\n",[75,684,685],{"class":77,"line":255},[75,686,687],{},"Group=ubuntu\n",[75,689,690],{"class":77,"line":267},[75,691,100],{"emptyLinePlaceholder":99},[75,693,694],{"class":77,"line":272},[75,695,696],{},"[Install]\n",[75,698,699],{"class":77,"line":278},[75,700,701],{},"WantedBy=multi-user.target\n",[703,704,705,711,717,723,729],"ul",{},[32,706,707,710],{},[51,708,709],{},"After"," — запускать после сетевого стека.",[32,712,713,716],{},[51,714,715],{},"Type=simple"," — процесс запускается и работает в foreground.",[32,718,719,722],{},[51,720,721],{},"Restart=on-failure"," — перезапускать при падении.",[32,724,725,728],{},[51,726,727],{},"User/Group"," — от какого пользователя запускать.",[32,730,731,734],{},[51,732,733],{},"WantedBy"," — к какому целевому юниту (.target) принадлежит.",[32,736,737,740,741],{},[35,738,739],{},"Сохраните файл"," и выполните:",[66,742,744],{"className":68,"code":743,"language":70,"meta":71,"style":71},"# Перечитать конфигурацию systemd (обязательно после создания/изменения файлов!)\nsudo systemctl daemon-reload\n\n# Включить и сразу запустить\nsudo systemctl enable --now myscript.service\n\n# Проверить статус\nsudo systemctl status myscript.service\n",[51,745,746,751,760,764,769,783,787,792],{"__ignoreMap":71},[75,747,748],{"class":77,"line":78},[75,749,750],{"class":81},"# Перечитать конфигурацию systemd (обязательно после создания/изменения файлов!)\n",[75,752,753,755,757],{"class":77,"line":85},[75,754,41],{"class":88},[75,756,195],{"class":114},[75,758,759],{"class":114}," daemon-reload\n",[75,761,762],{"class":77,"line":96},[75,763,100],{"emptyLinePlaceholder":99},[75,765,766],{"class":77,"line":103},[75,767,768],{"class":81},"# Включить и сразу запустить\n",[75,770,771,773,775,777,780],{"class":77,"line":109},[75,772,41],{"class":88},[75,774,195],{"class":114},[75,776,353],{"class":114},[75,778,779],{"class":92}," --now",[75,781,782],{"class":114}," myscript.service\n",[75,784,785],{"class":77,"line":124},[75,786,100],{"emptyLinePlaceholder":99},[75,788,789],{"class":77,"line":129},[75,790,791],{"class":81},"# Проверить статус\n",[75,793,794,796,798,800],{"class":77,"line":135},[75,795,41],{"class":88},[75,797,195],{"class":114},[75,799,285],{"class":114},[75,801,782],{"class":114},[16,803,805],{"id":804},"проверка-результата","Проверка результата",[29,807,808,821,833,842],{},[32,809,810,813,814,817,818,334],{},[35,811,812],{},"Статус сервиса",": ",[51,815,816],{},"systemctl status \u003Cservice>"," должен показывать ",[51,819,820],{},"active (running)",[32,822,823,813,826,829,830,334],{},[35,824,825],{},"Автозапуск",[51,827,828],{},"systemctl is-enabled \u003Cservice>"," вернёт ",[51,831,832],{},"enabled",[32,834,835,813,838,841],{},[35,836,837],{},"Логи",[51,839,840],{},"journalctl -u \u003Cservice> -n 20"," покажет последние 20 строк логов без ошибок.",[32,843,844,847,848,851,852,54],{},[35,845,846],{},"Функциональность",": Если это веб-сервер (nginx/apache), проверьте ответ ",[51,849,850],{},"curl http://localhost",". Если это фоновый процесс — убедитесь, что он работает (",[51,853,854],{},"ps aux | grep \u003Cprocess>",[16,856,858],{"id":857},"возможные-проблемы","Возможные проблемы",[860,861,862,879],"table",{},[863,864,865],"thead",{},[866,867,868,873,876],"tr",{},[869,870,872],"th",{"align":871},"left","Проблема / Симптом",[869,874,875],{"align":871},"Вероятная причина",[869,877,878],{"align":871},"Решение",[880,881,882,906,932,960,986,1012],"tbody",{},[866,883,884,890,893],{},[885,886,887],"td",{"align":871},[51,888,889],{},"Failed to start \u003Cservice>. Unit \u003Cservice> not found.",[885,891,892],{"align":871},"Неверное имя сервиса или файл .service отсутствует.",[885,894,895,896,899,900,902,903,334],{"align":871},"Проверьте точное имя через ",[51,897,898],{},"systemctl list-unit-files | grep \u003Cчасть_имени>",". Убедитесь, что файл лежит в ",[51,901,333],{}," или ",[51,904,905],{},"/lib/systemd/system/",[866,907,908,920,923],{},[885,909,910,902,913,916,917],{"align":871},[51,911,912],{},"Permission denied",[51,914,915],{},"Access denied"," при ",[51,918,919],{},"start/stop",[885,921,922],{"align":871},"Запуск без sudo или отсутствие прав в файле сервиса.",[885,924,925,926,928,929,334],{"align":871},"Используйте ",[51,927,41],{},". Проверьте права на файл сервиса: ",[51,930,931],{},"ls -l /etc/systemd/system/\u003Cservice>.service",[866,933,934,942,949],{},[885,935,936,937,902,940,54],{"align":871},"Сервис запускается, но сразу падает (",[51,938,939],{},"active (exited)",[51,941,170],{},[885,943,944,945,948],{"align":871},"Ошибка в команде ",[51,946,947],{},"ExecStart",", отсутствие зависимостей, права на скрипт/бинарник.",[885,950,951,952,955,956,959],{"align":871},"Смотрите логи: ",[51,953,954],{},"sudo journalctl -u \u003Cservice> -b",". Проверьте, что скрипт исполняемый (",[51,957,958],{},"chmod +x",") и указан абсолютный путь.",[866,961,962,968,975],{},[885,963,964,967],{"align":871},[51,965,966],{},"Failed to execute command: Permission denied"," (в логах journalctl)",[885,969,970,971,974],{"align":871},"Пользователь, указанный в ",[51,972,973],{},"User=",", не имеет прав на доступ к необходимым файлам/портам.",[885,976,977,978,981,982,985],{"align":871},"Исправьте права на файлы/каталоги (",[51,979,980],{},"chown",", ",[51,983,984],{},"chmod",") или запускайте от root (не рекомендуется).",[866,987,988,994,1001],{},[885,989,990,991,334],{"align":871},"Изменения в файле сервиса не применяются после ",[51,992,993],{},"systemctl restart",[885,995,996,997,1000],{"align":871},"Забыли выполнить ",[51,998,999],{},"systemctl daemon-reload"," после редактирования файла.",[885,1002,1003,1004,1007,1008,1011],{"align":871},"Всегда выполняйте ",[51,1005,1006],{},"sudo systemctl daemon-reload"," после изменения ",[51,1009,1010],{},".service"," файлов.",[866,1013,1014,1020,1026],{},[885,1015,1016,1019],{"align":871},[51,1017,1018],{},"masked"," статус (сервис заблокирован).",[885,1021,1022,1023,334],{"align":871},"Кто-то выполнил ",[51,1024,1025],{},"systemctl mask",[885,1027,1028,1029,1032,1033,334],{"align":871},"Разблокируйте: ",[51,1030,1031],{},"sudo systemctl unmask \u003Cservice>",", затем ",[51,1034,1035],{},"sudo systemctl enable \u003Cservice>",[1037,1038,1039],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":71,"searchDepth":85,"depth":85,"links":1041},[1042,1043,1044,1045,1046,1047,1048,1049,1050],{"id":18,"depth":85,"text":19},{"id":26,"depth":85,"text":27},{"id":60,"depth":85,"text":61},{"id":174,"depth":85,"text":175},{"id":326,"depth":85,"text":327},{"id":426,"depth":85,"text":427},{"id":607,"depth":85,"text":608},{"id":804,"depth":85,"text":805},{"id":857,"depth":85,"text":858},null,"2026-02-16 12:57:23","Научитесь управлять службами systemd: запуск, остановка, включение автозапуска. Пошаговая инструкция с примерами для Ubuntu/Debian/CentOS.","medium",false,"15-30 мин","md",[1059,1062,1065,1068],{"question":1060,"answer":1061},"В чём разница между systemctl start и systemctl enable?","`start` запускает сервис сразу, `enable` настраивает его автозапуск при загрузке системы. Обычно нужно выполнить оба.",{"question":1063,"answer":1064},"Как посмотреть логи сервиса, который упал при старте?","Используйте `journalctl -u \u003Cимя_сервиса> -b` для просмотра логов с момента последней загрузки. Добавьте `--no-pager` для вывода в консоль.",{"question":1066,"answer":1067},"Что делать, если сервис не запускается и пишет 'Unit not found'?","Убедитесь, что вы используете правильное имя юнита (обычно имя файла .service без расширения). Проверьте наличие файла в `/etc/systemd/system/` или `/lib/systemd/system/`.",{"question":1069,"answer":1070},"Как временно отключить автозапуск сервиса без удаления?","Выполните `systemctl disable \u003Cимя_сервиса>`. Это удалит символические ссылки, но файл сервиса останется на месте.",[1072,1075,1078,1081,1084],{"name":1073,"text":1074},"Проверка наличия systemd","Убедитесь, что ваша система использует systemd. Выполните `systemctl --version`. Если команда найдена, вы увидите номер версии.",{"name":1076,"text":1077},"Базовые операции: запуск, остановка, перезапуск","Используйте `systemctl start \u003Cservice>`, `systemctl stop \u003Cservice>`, `systemctl restart \u003Cservice>` для управления текущим состоянием сервиса.",{"name":1079,"text":1080},"Просмотр статуса и включение автозапуска","Команда `systemctl status \u003Cservice>` показать детальную информацию. Для настройки автозапуска используйте `systemctl enable \u003Cservice>`.",{"name":1082,"text":1083},"Работа с журналом (journalctl)","Для просмотра логов всех сервисов: `journalctl -f`. Для конкретного сервиса: `journalctl -u \u003Cservice>`. Используйте `--since` и `--until` для фильтрации по времени.",{"name":1085,"text":1086},"Создание собственного сервиса","Создайте файл `/etc/systemd/system/myservice.service` с определением [Service], [Install] и ExecStart. Затем выполните `systemctl daemon-reload` и `systemctl enable --now myservice`.","PT20M",[1089,1090,1091,1092,1093,1094,1095,1096],"systemd команды","управление службами linux","systemctl start stop","journalctl логи","автозапуск сервиса systemd","создание сервиса systemd","проверить статус службы","systemd unit файлы","ru_RU",{},"/guides/linux/service-management","linux",[1102,1103,1104],"/guides/linux/ubuntu-service-management","/guides/linux/journalctl-usage","/errors/linux/systemd-failed-to-start","Гайды Linux",{"title":5,"description":1053},"low","guides/linux/service-management","В этом гайде вы освоите основные команды systemd для управления сервисами в Linux, включая запуск, остановку, проверку статуса и настройку автозапуска.",[1111,48,1112,1113,1114,433,89],"администрирование","servers","ubuntu","centos","guide","cYZe8PaQpSp3PdId1v2d3XZprkORas3y010a22Ve5_A",{"data":1118,"body":1119},{},{"type":1120,"children":1121},"root",[1122],{"type":1123,"tag":21,"props":1124,"children":1125},"element",{},[1126,1132,1134,1139],{"type":1123,"tag":51,"props":1127,"children":1129},{"className":1128},[],[1130],{"type":1131,"value":419},"text",{"type":1131,"value":1133}," запускает сервис сразу, ",{"type":1123,"tag":51,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":1131,"value":415},{"type":1131,"value":1140}," настраивает его автозапуск при загрузке системы. Обычно нужно выполнить оба.",{"data":1142,"body":1143},{},{"type":1120,"children":1144},[1145],{"type":1123,"tag":21,"props":1146,"children":1147},{},[1148,1149,1155,1157,1163],{"type":1131,"value":925},{"type":1123,"tag":51,"props":1150,"children":1152},{"className":1151},[],[1153],{"type":1131,"value":1154},"journalctl -u \u003Cимя_сервиса> -b",{"type":1131,"value":1156}," для просмотра логов с момента последней загрузки. Добавьте ",{"type":1123,"tag":51,"props":1158,"children":1160},{"className":1159},[],[1161],{"type":1131,"value":1162},"--no-pager",{"type":1131,"value":1164}," для вывода в консоль.",{"data":1166,"body":1167},{},{"type":1120,"children":1168},[1169],{"type":1123,"tag":21,"props":1170,"children":1171},{},[1172,1174,1179,1180,1185],{"type":1131,"value":1173},"Убедитесь, что вы используете правильное имя юнита (обычно имя файла .service без расширения). Проверьте наличие файла в ",{"type":1123,"tag":51,"props":1175,"children":1177},{"className":1176},[],[1178],{"type":1131,"value":333},{"type":1131,"value":902},{"type":1123,"tag":51,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":1131,"value":905},{"type":1131,"value":334},{"data":1187,"body":1188},{},{"type":1120,"children":1189},[1190],{"type":1123,"tag":21,"props":1191,"children":1192},{},[1193,1195,1201],{"type":1131,"value":1194},"Выполните ",{"type":1123,"tag":51,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":1131,"value":1200},"systemctl disable \u003Cимя_сервиса>",{"type":1131,"value":1202},". Это удалит символические ссылки, но файл сервиса останется на месте.",{"data":1204,"body":1205},{},{"type":1120,"children":1206},[1207],{"type":1123,"tag":21,"props":1208,"children":1209},{},[1210,1212,1217],{"type":1131,"value":1211},"Убедитесь, что ваша система использует systemd. Выполните ",{"type":1123,"tag":51,"props":1213,"children":1215},{"className":1214},[],[1216],{"type":1131,"value":53},{"type":1131,"value":1218},". Если команда найдена, вы увидите номер версии.",{"data":1220,"body":1221},{},{"type":1120,"children":1222},[1223],{"type":1123,"tag":21,"props":1224,"children":1225},{},[1226,1227,1233,1234,1240,1241,1247],{"type":1131,"value":925},{"type":1123,"tag":51,"props":1228,"children":1230},{"className":1229},[],[1231],{"type":1131,"value":1232},"systemctl start \u003Cservice>",{"type":1131,"value":981},{"type":1123,"tag":51,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":1131,"value":1239},"systemctl stop \u003Cservice>",{"type":1131,"value":981},{"type":1123,"tag":51,"props":1242,"children":1244},{"className":1243},[],[1245],{"type":1131,"value":1246},"systemctl restart \u003Cservice>",{"type":1131,"value":1248}," для управления текущим состоянием сервиса.",{"data":1250,"body":1251},{},{"type":1120,"children":1252},[1253],{"type":1123,"tag":21,"props":1254,"children":1255},{},[1256,1258,1263,1265,1271],{"type":1131,"value":1257},"Команда ",{"type":1123,"tag":51,"props":1259,"children":1261},{"className":1260},[],[1262],{"type":1131,"value":816},{"type":1131,"value":1264}," показать детальную информацию. Для настройки автозапуска используйте ",{"type":1123,"tag":51,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":1131,"value":1270},"systemctl enable \u003Cservice>",{"type":1131,"value":334},{"data":1273,"body":1274},{},{"type":1120,"children":1275},[1276],{"type":1123,"tag":21,"props":1277,"children":1278},{},[1279,1281,1287,1289,1295,1297,1303,1305,1311],{"type":1131,"value":1280},"Для просмотра логов всех сервисов: ",{"type":1123,"tag":51,"props":1282,"children":1284},{"className":1283},[],[1285],{"type":1131,"value":1286},"journalctl -f",{"type":1131,"value":1288},". Для конкретного сервиса: ",{"type":1123,"tag":51,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":1131,"value":1294},"journalctl -u \u003Cservice>",{"type":1131,"value":1296},". Используйте ",{"type":1123,"tag":51,"props":1298,"children":1300},{"className":1299},[],[1301],{"type":1131,"value":1302},"--since",{"type":1131,"value":1304}," и ",{"type":1123,"tag":51,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":1131,"value":1310},"--until",{"type":1131,"value":1312}," для фильтрации по времени.",{"data":1314,"body":1315},{},{"type":1120,"children":1316},[1317],{"type":1123,"tag":21,"props":1318,"children":1319},{},[1320,1322,1328,1330,1335,1336,1341,1343,1348,1349,1355],{"type":1131,"value":1321},"Создайте файл ",{"type":1123,"tag":51,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":1131,"value":1327},"/etc/systemd/system/myservice.service",{"type":1131,"value":1329}," с определением ",{"type":1123,"tag":75,"props":1331,"children":1332},{},[1333],{"type":1131,"value":1334},"Service",{"type":1131,"value":981},{"type":1123,"tag":75,"props":1337,"children":1338},{},[1339],{"type":1131,"value":1340},"Install",{"type":1131,"value":1342}," и ExecStart. Затем выполните ",{"type":1123,"tag":51,"props":1344,"children":1346},{"className":1345},[],[1347],{"type":1131,"value":999},{"type":1131,"value":1304},{"type":1123,"tag":51,"props":1350,"children":1352},{"className":1351},[],[1353],{"type":1131,"value":1354},"systemctl enable --now myservice",{"type":1131,"value":334},[1357,1881,3673],{"id":1358,"title":1359,"appliesTo":1360,"author":11,"body":1364,"canonical":1051,"code":1051,"createdAt":1831,"description":1832,"difficulty":1833,"draft":1055,"estimatedTime":1834,"extension":1057,"faq":1835,"howToSteps":1845,"howToTotalTime":1858,"image":1051,"keywords":1859,"locale":1097,"meta":1867,"navigation":99,"path":1102,"platform":1100,"related":1868,"section":1105,"seo":1872,"severity":1107,"stem":1873,"summary":1874,"tags":1875,"twitterCreator":1051,"twitterSite":1051,"type":1115,"updatedAt":1831,"__hash__":1880},"content_ru/guides/linux/ubuntu-service-management.md","Управление сервисами в Ubuntu: настройка systemctl за 10 минут",[1361,1362,1363],"Ubuntu 20.04 LTS","Ubuntu 22.04 LTS","Ubuntu 24.04 LTS",{"type":13,"value":1365,"toc":1821},[1366,1370,1376,1380,1396,1400,1407,1423,1432,1451,1454,1469,1473,1476,1505,1518,1520,1524,1527,1547,1560,1564,1567,1582,1585,1653,1667,1680,1683,1701,1703,1706,1725,1731,1750,1760,1762,1776,1796,1818],[16,1367,1369],{"id":1368},"зачем-управлять-службами-вручную","Зачем управлять службами вручную",[21,1371,1372,1373,1375],{},"В современных версиях Ubuntu за все фоновые процессы отвечает ",[51,1374,48],{},". Умение управлять службами напрямую влияет на безопасность сервера, потребление ресурсов и скорость загрузки системы. После выполнения этого руководства вы сможете останавливать зависшие демоны, оптимизировать список автозагрузки и разворачивать собственные приложения как системные сервисы без сторонних скриптов инициализации.",[16,1377,1379],{"id":1378},"подготовка-и-требования","Подготовка и требования",[21,1381,1382,1383,1385,1386,1388,1389,1391,1392,1395],{},"Перед началом убедитесь, что у вас есть доступ к терминалу с правами обычного пользователя. Большинство операций с ",[51,1384,48],{}," требуют привилегий суперпользователя, поэтому команды будут выполняться с префиксом ",[51,1387,41],{},". Гайд полностью совместим с Ubuntu 20.04, 22.04 и 24.04, где ",[51,1390,89],{}," является стандартным менеджером инициализации. Откройте терминал (",[51,1393,1394],{},"Ctrl+Alt+T",") или подключитесь по SSH.",[16,1397,1399],{"id":1398},"шаг-1-мониторинг-и-диагностика-процессов","Шаг 1: Мониторинг и диагностика процессов",[21,1401,1402,1403,1406],{},"Прежде чем вмешиваться в работу системы, оцените текущее состояние. Вывести подробную информацию о конкретной службе (например, ",[51,1404,1405],{},"ssh",") поможет команда:",[66,1408,1410],{"className":68,"code":1409,"language":70,"meta":71,"style":71},"sudo systemctl status ssh\n",[51,1411,1412],{"__ignoreMap":71},[75,1413,1414,1416,1418,1420],{"class":77,"line":78},[75,1415,41],{"class":88},[75,1417,195],{"class":114},[75,1419,285],{"class":114},[75,1421,1422],{"class":114}," ssh\n",[21,1424,1425,1426,902,1429,1431],{},"В ответе вы увидите поле ",[51,1427,1428],{},"Active: active (running)",[51,1430,170],{},". Для поиска проблем используйте журналы конкретной службы:",[66,1433,1435],{"className":68,"code":1434,"language":70,"meta":71,"style":71},"journalctl -u ssh --since \"1 hour ago\"\n",[51,1436,1437],{"__ignoreMap":71},[75,1438,1439,1441,1443,1446,1448],{"class":77,"line":78},[75,1440,433],{"class":88},[75,1442,471],{"class":92},[75,1444,1445],{"class":114}," ssh",[75,1447,519],{"class":92},[75,1449,1450],{"class":114}," \"1 hour ago\"\n",[21,1452,1453],{},"Чтобы получить полный список загруженных юнитов и отфильтровать только работающие:",[66,1455,1457],{"className":68,"code":1456,"language":70,"meta":71,"style":71},"systemctl list-units --type=service --state=running\n",[51,1458,1459],{"__ignoreMap":71},[75,1460,1461,1463,1465,1467],{"class":77,"line":78},[75,1462,89],{"class":88},[75,1464,115],{"class":114},[75,1466,118],{"class":92},[75,1468,121],{"class":92},[16,1470,1472],{"id":1471},"шаг-2-базовое-управление-состоянием","Шаг 2: Базовое управление состоянием",[21,1474,1475],{},"Если служба зависла или требует сброса конфигурации, примените одну из стандартных команд:",[703,1477,1478,1484,1493,1499],{},[32,1479,1480,1483],{},[51,1481,1482],{},"sudo systemctl start nginx"," — мгновенный запуск процесса.",[32,1485,1486,1489,1490,54],{},[51,1487,1488],{},"sudo systemctl stop nginx"," — корректная остановка (отправляет сигнал ",[51,1491,1492],{},"SIGTERM",[32,1494,1495,1498],{},[51,1496,1497],{},"sudo systemctl restart nginx"," — последовательная остановка и запуск (полезно после правки конфигов).",[32,1500,1501,1504],{},[51,1502,1503],{},"sudo systemctl reload nginx"," — перечитывает конфигурацию без обрыва текущих подключений.",[308,1506,1507],{},[21,1508,1509,1510,1513,1514,1517],{},"💡 Совет: Всегда используйте ",[51,1511,1512],{},"reload"," вместо ",[51,1515,1516],{},"restart"," для веб-серверов и баз данных, если изменения в конфигах позволяют это. Это сохранит активные сессии пользователей и снизит простой.",[322,1519],{},[16,1521,1523],{"id":1522},"шаг-3-настройка-автозагрузки","Шаг 3: Настройка автозагрузки",[21,1525,1526],{},"По умолчанию многие службы включены при установке, но вы можете управлять их поведением при старте системы.",[703,1528,1529,1535,1541],{},[32,1530,1531,1532],{},"Включить автозапуск: ",[51,1533,1534],{},"sudo systemctl enable nginx",[32,1536,1537,1538],{},"Отключить автозапуск: ",[51,1539,1540],{},"sudo systemctl disable nginx",[32,1542,1543,1544],{},"Полностью заблокировать запуск вручную и автоматически: ",[51,1545,1546],{},"sudo systemctl mask nginx",[21,1548,1549,1550,1553,1554,1556,1557,334],{},"Проверить статус автозагрузки можно через ",[51,1551,1552],{},"systemctl is-enabled nginx",". Если команда вернула ",[51,1555,832],{},", юнит будет стартовать вместе с ОС. Для временного отключения службы только на текущую сессию используйте ",[51,1558,1559],{},"sudo systemctl mask --runtime nginx",[16,1561,1563],{"id":1562},"шаг-4-создание-собственного-сервиса","Шаг 4: Создание собственного сервиса",[21,1565,1566],{},"Чтобы ваше приложение запускалось в фоне и восстанавливалось после краха, создайте юнит-файл. Откройте редактор:",[66,1568,1570],{"className":68,"code":1569,"language":70,"meta":71,"style":71},"sudo nano /etc/systemd/system/myapp.service\n",[51,1571,1572],{"__ignoreMap":71},[75,1573,1574,1576,1579],{"class":77,"line":78},[75,1575,41],{"class":88},[75,1577,1578],{"class":114}," nano",[75,1580,1581],{"class":114}," /etc/systemd/system/myapp.service\n",[21,1583,1584],{},"Вставьте базовую структуру:",[66,1586,1588],{"className":629,"code":1587,"language":631,"meta":71,"style":71},"[Unit]\nDescription=Мое кастомное приложение\nAfter=network.target\n\n[Service]\nUser=myuser\nGroup=mygroup\nWorkingDirectory=/opt/myapp\nExecStart=/usr/bin/python3 /opt/myapp/main.py\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target\n",[51,1589,1590,1594,1599,1603,1607,1611,1616,1621,1626,1631,1636,1641,1645,1649],{"__ignoreMap":71},[75,1591,1592],{"class":77,"line":78},[75,1593,638],{},[75,1595,1596],{"class":77,"line":85},[75,1597,1598],{},"Description=Мое кастомное приложение\n",[75,1600,1601],{"class":77,"line":96},[75,1602,648],{},[75,1604,1605],{"class":77,"line":103},[75,1606,100],{"emptyLinePlaceholder":99},[75,1608,1609],{"class":77,"line":109},[75,1610,657],{},[75,1612,1613],{"class":77,"line":124},[75,1614,1615],{},"User=myuser\n",[75,1617,1618],{"class":77,"line":129},[75,1619,1620],{},"Group=mygroup\n",[75,1622,1623],{"class":77,"line":135},[75,1624,1625],{},"WorkingDirectory=/opt/myapp\n",[75,1627,1628],{"class":77,"line":244},[75,1629,1630],{},"ExecStart=/usr/bin/python3 /opt/myapp/main.py\n",[75,1632,1633],{"class":77,"line":249},[75,1634,1635],{},"Restart=always\n",[75,1637,1638],{"class":77,"line":255},[75,1639,1640],{},"RestartSec=5\n",[75,1642,1643],{"class":77,"line":267},[75,1644,100],{"emptyLinePlaceholder":99},[75,1646,1647],{"class":77,"line":272},[75,1648,696],{},[75,1650,1651],{"class":77,"line":278},[75,1652,701],{},[21,1654,1655,1656,1659,1660,1662,1663,1666],{},"Здесь ",[51,1657,1658],{},"Restart=always"," гарантирует, что ",[51,1661,48],{}," автоматически перезапустит процесс при падении. ",[51,1664,1665],{},"After=network.target"," указывает, что сервис должен стартовать только после инициализации сетевого стека. После сохранения примените изменения:",[66,1668,1670],{"className":68,"code":1669,"language":70,"meta":71,"style":71},"sudo systemctl daemon-reload\n",[51,1671,1672],{"__ignoreMap":71},[75,1673,1674,1676,1678],{"class":77,"line":78},[75,1675,41],{"class":88},[75,1677,195],{"class":114},[75,1679,759],{"class":114},[21,1681,1682],{},"Затем активируйте и запустите его одной командой:",[66,1684,1686],{"className":68,"code":1685,"language":70,"meta":71,"style":71},"sudo systemctl enable --now myapp\n",[51,1687,1688],{"__ignoreMap":71},[75,1689,1690,1692,1694,1696,1698],{"class":77,"line":78},[75,1691,41],{"class":88},[75,1693,195],{"class":114},[75,1695,353],{"class":114},[75,1697,779],{"class":92},[75,1699,1700],{"class":114}," myapp\n",[16,1702,805],{"id":804},[21,1704,1705],{},"Убедитесь, что сервис работает штатно. Выполните:",[66,1707,1709],{"className":68,"code":1708,"language":70,"meta":71,"style":71},"systemctl list-units --type=service | grep myapp\n",[51,1710,1711],{"__ignoreMap":71},[75,1712,1713,1715,1717,1719,1721,1723],{"class":77,"line":78},[75,1714,89],{"class":88},[75,1716,115],{"class":114},[75,1718,118],{"class":92},[75,1720,146],{"class":145},[75,1722,598],{"class":88},[75,1724,1700],{"class":114},[21,1726,1727,1728,1730],{},"Статус должен быть ",[51,1729,162],{},". Дополнительно проверьте логи на наличие ошибок запуска:",[66,1732,1734],{"className":68,"code":1733,"language":70,"meta":71,"style":71},"sudo journalctl -u myapp -e\n",[51,1735,1736],{"__ignoreMap":71},[75,1737,1738,1740,1742,1744,1747],{"class":77,"line":78},[75,1739,41],{"class":88},[75,1741,450],{"class":114},[75,1743,471],{"class":92},[75,1745,1746],{"class":114}," myapp",[75,1748,1749],{"class":92}," -e\n",[21,1751,1752,1753,902,1756,1759],{},"Если в логах нет строк с ",[51,1754,1755],{},"ERROR",[51,1757,1758],{},"FATAL",", а процесс занимает ресурсы только при реальной нагрузке, настройка завершена успешно.",[16,1761,858],{"id":857},[21,1763,1764,1770,1771,1773,1774,334],{},[35,1765,1766,1767],{},"Ошибка ",[51,1768,1769],{},"Failed to execute operation: No such file or directory","\nОбычно возникает при попытке включить несуществующий юнит. Проверьте опечатки в названии и убедитесь, что файл лежит именно в ",[51,1772,333],{},". После добавления или удаления файлов всегда запускайте ",[51,1775,1006],{},[21,1777,1778,1785,1786,1789,1790,1793,1794,334],{},[35,1779,1780,1781,1784],{},"Служба не останавливается (",[51,1782,1783],{},"Job for ... canceled",")","\nПроцесс мог игнорировать сигнал завершения. Принудительно завершите его командой ",[51,1787,1788],{},"sudo systemctl kill --signal=SIGKILL имя_службы",", а затем выполните ",[51,1791,1792],{},"stop",". Проверьте код возврата приложения или обновите его, так как корректные демоны должны обрабатывать ",[51,1795,1492],{},[21,1797,1798,1801,1802,1804,1805,1807,1808,1811,1812,1304,1815,334],{},[35,1799,1800],{},"Ошибка доступа к файлам в WorkingDirectory","\nЕсли в логах видны ",[51,1803,912],{},", убедитесь, что пользователь, указанный в ",[51,1806,973],{}," в секции ",[51,1809,1810],{},"[Service]",", имеет права на чтение и выполнение файлов в рабочей директории. Исправить можно через ",[51,1813,1814],{},"sudo chown -R myuser:mygroup /opt/myapp",[51,1816,1817],{},"sudo chmod -R 750 /opt/myapp",[1037,1819,1820],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":71,"searchDepth":85,"depth":85,"links":1822},[1823,1824,1825,1826,1827,1828,1829,1830],{"id":1368,"depth":85,"text":1369},{"id":1378,"depth":85,"text":1379},{"id":1398,"depth":85,"text":1399},{"id":1471,"depth":85,"text":1472},{"id":1522,"depth":85,"text":1523},{"id":1562,"depth":85,"text":1563},{"id":804,"depth":85,"text":805},{"id":857,"depth":85,"text":858},"2026-04-06 16:36:07","Научитесь запускать, останавливать и автозагружать службы в Ubuntu. Пошаговая инструкция с командами systemctl для стабильной работы системы.","easy","10-15 мин",[1836,1839,1842],{"question":1837,"answer":1838},"Почему systemctl не видит мою службу?","Убедитесь, что файл юнита находится в `/etc/systemd/system/`, имеет расширение `.service` и вы выполнили `sudo systemctl daemon-reload` после любых изменений.",{"question":1840,"answer":1841},"В чём разница между stop, disable и mask?","`stop` останавливает процесс сейчас, `disable` убирает автозапуск при загрузке, а `mask` полностью блокирует любой запуск службы, заменяя её символической ссылкой на `/dev/null`.",{"question":1843,"answer":1844},"Как безопасно проверить изменения в юните?","Используйте `systemd-analyze verify /etc/systemd/system/ваш_сервис.service` для поиска синтаксических ошибок и битых путей до применения изменений.",[1846,1849,1852,1855],{"name":1847,"text":1848},"Просмотр статуса и списка служб","Запустите `sudo systemctl status имя_службы` для проверки текущего состояния или `systemctl list-units --type=service` для вывода всех активных процессов.",{"name":1850,"text":1851},"Запуск, остановка и перезапуск","Управляйте процессами в реальном времени командами `sudo systemctl start/stop/restart имя_службы`.",{"name":1853,"text":1854},"Настройка автозагрузки","Разрешите автоматический запуск через `sudo systemctl enable имя_службы` или запретите его с помощью `disable`.",{"name":1856,"text":1857},"Создание собственного юнита","Создайте файл `.service` в `/etc/systemd/system/`, опишите параметры запуска и обновите конфигурацию командой `daemon-reload`.","PT15M",[1860,1861,1862,1863,1864,1865,1866],"управление службами ubuntu","systemctl команды","автозагрузка сервисов linux","как перезапустить службу ubuntu","создание systemd юнита","проверка статуса сервиса","systemctl enable disable",{},[1869,1870,1871],"/guides/linux/ubuntu-cron-jobs-setup","/guides/linux/linux-firewall-configuration","/errors/linux/service-failed-start",{"title":1359,"description":1832},"guides/linux/ubuntu-service-management","Разбираем базовые и продвинутые команды systemctl для контроля фоновых процессов в Ubuntu. Вы научитесь управлять автозапуском, проверять статусы и создавать собственные юниты.",[1876,1877,48,1111,1878,70,1879],"Linux","Ubuntu","services","настройка системы","YjFhqJxNWkrEjO9NWJPrsZOZ-zB1Eq8iLzs1u5deI4g",{"id":1882,"title":1883,"appliesTo":1884,"author":11,"body":1890,"canonical":1051,"code":1051,"createdAt":3616,"description":3617,"difficulty":1054,"draft":1055,"estimatedTime":3618,"extension":1057,"faq":3619,"howToSteps":3632,"howToTotalTime":1087,"image":1051,"keywords":3651,"locale":1097,"meta":3661,"navigation":99,"path":1103,"platform":1100,"related":3662,"section":1105,"seo":3665,"severity":1051,"stem":3666,"summary":3667,"tags":3668,"twitterCreator":1051,"twitterSite":1051,"type":1115,"updatedAt":3616,"__hash__":3672},"content_ru/guides/linux/journalctl-usage.md","journalctl: Полное руководство по работе с логами systemd",[1885,1886,1887,1888,1889],"systemd v237+","Ubuntu 16.04+","CentOS 7+","Debian 9+","Fedora 33+",{"type":13,"value":1891,"toc":3582},[1892,1894,1917,1920,1934,1944,1946,1998,2002,2012,2017,2073,2087,2091,2094,2155,2166,2170,2173,2255,2265,2309,2313,2316,2422,2438,2442,2458,2558,2563,2607,2612,2621,2693,2697,2701,2704,2810,2814,2851,2855,2914,2918,2921,3035,3054,3056,3106,3111,3113,3117,3136,3144,3178,3182,3200,3204,3224,3231,3263,3266,3268,3272,3276,3316,3322,3326,3393,3397,3452,3456,3464,3488,3492,3498,3579],[16,1893,19],{"id":18},[21,1895,1896,1898,1899,1902,1903,981,1906,981,1909,1912,1913,1916],{},[51,1897,433],{}," — это основная утилита для просмотра и анализа журналов, собираемых ",[35,1900,1901],{},"systemd-journald",". Она заменяет собой множественные текстовые файлы логов (",[51,1904,1905],{},"/var/log/syslog",[51,1907,1908],{},"/var/log/messages",[51,1910,1911],{},"dmesg","), предоставляя единый, структурированный, ",[35,1914,1915],{},"индексированный"," источник информации обо всех процессах в системе.",[21,1918,1919],{},"С помощью этого гайда вы научитесь:",[703,1921,1922,1925,1928,1931],{},[32,1923,1924],{},"Быстро находить логи конкретной службы или процесса.",[32,1926,1927],{},"Фильтровать записи по времени, уровню серьезности (ошибка/предупреждение/инфо) и другим полям.",[32,1929,1930],{},"Отслеживать события в реальном времени.",[32,1932,1933],{},"Сохранять и экспортировать логи для дальнейшего анализа.",[21,1935,1936,1937,981,1940,1943],{},"Это незаменимый навык для любого ",[35,1938,1939],{},"сисадмина",[35,1941,1942],{},"devops-инженера"," или разработчика, отлаживающего приложение на Linux.",[16,1945,27],{"id":26},[29,1947,1948,1957,1976],{},[32,1949,1950,1953,1954,1956],{},[35,1951,1952],{},"Операционная система:"," Любой современный дистрибутив Linux, использующий ",[51,1955,48],{}," (подавляющее большинство).",[32,1958,1959,1962,1963,1966,1967,1969,1970,1973,1974,334],{},[35,1960,1961],{},"Права доступа:"," Для просмотра логов ",[35,1964,1965],{},"всех"," пользователей и служб обычно требуются права ",[35,1968,1120],{}," (или членство в группе ",[51,1971,1972],{},"systemd-journal","). Команды, требующие повышенных привилегий, в этом гайде помечены ",[51,1975,41],{},[32,1977,1978,1981,1982,981,1985,981,1988,981,1991,981,1994,1997],{},[35,1979,1980],{},"Понимание структуры лога:"," Каждая запись в журнале имеет множество полей (",[51,1983,1984],{},"_SYSTEMD_UNIT",[51,1986,1987],{},"_PID",[51,1989,1990],{},"_COMM",[51,1992,1993],{},"PRIORITY",[51,1995,1996],{},"__REALTIME_TIMESTAMP"," и др.). Мы будем использовать их для фильтрации.",[16,1999,2001],{"id":2000},"шаг-1-базовый-просмотр-и-навигация","Шаг 1: Базовый просмотр и навигация",[21,2003,2004,2005,2007,2008,2011],{},"Простой вызов ",[51,2006,433],{}," без аргументов отобразит ",[35,2009,2010],{},"весь"," доступный журнал, начиная с самой старой записи. Это может быть очень много данных.",[21,2013,2014],{},[35,2015,2016],{},"Лучшие практики для начала:",[66,2018,2020],{"className":68,"code":2019,"language":70,"meta":71,"style":71},"# Показать последние 50 строк (аналог tail -n 50)\njournalctl -n 50\n\n# Показать последние 50 строк и следить за новыми (аналог tail -f)\njournalctl -f -n 50\n\n# Показать логи с самого начала (по умолчанию)\njournalctl --no-pager\n",[51,2021,2022,2027,2037,2041,2046,2057,2061,2066],{"__ignoreMap":71},[75,2023,2024],{"class":77,"line":78},[75,2025,2026],{"class":81},"# Показать последние 50 строк (аналог tail -n 50)\n",[75,2028,2029,2031,2034],{"class":77,"line":85},[75,2030,433],{"class":88},[75,2032,2033],{"class":92}," -n",[75,2035,2036],{"class":92}," 50\n",[75,2038,2039],{"class":77,"line":96},[75,2040,100],{"emptyLinePlaceholder":99},[75,2042,2043],{"class":77,"line":103},[75,2044,2045],{"class":81},"# Показать последние 50 строк и следить за новыми (аналог tail -f)\n",[75,2047,2048,2050,2053,2055],{"class":77,"line":109},[75,2049,433],{"class":88},[75,2051,2052],{"class":92}," -f",[75,2054,2033],{"class":92},[75,2056,2036],{"class":92},[75,2058,2059],{"class":77,"line":124},[75,2060,100],{"emptyLinePlaceholder":99},[75,2062,2063],{"class":77,"line":129},[75,2064,2065],{"class":81},"# Показать логи с самого начала (по умолчанию)\n",[75,2067,2068,2070],{"class":77,"line":135},[75,2069,433],{"class":88},[75,2071,2072],{"class":92}," --no-pager\n",[308,2074,2075],{},[21,2076,312,2077,2080,2081,2083,2084,334],{},[35,2078,2079],{},"Совет:"," Используйте флаг ",[51,2082,1162],{},", если хотите, чтобы вывод сразу попал в конвейер (pipe) или файл, без постраничного просмотра через ",[51,2085,2086],{},"less",[16,2088,2090],{"id":2089},"шаг-2-фильтрация-по-службе-unit","Шаг 2: Фильтрация по службе (UNIT)",[21,2092,2093],{},"Самый частый сценарий — посмотреть логи конкретного демона или службы.",[66,2095,2097],{"className":68,"code":2096,"language":70,"meta":71,"style":71},"# Логи службы Nginx (имя службы берется из systemd unit-файла)\njournalctl -u nginx.service\n\n# Логи службы Docker\njournalctl -u docker.service -f\n\n# Логи нескольких служб одновременно\njournalctl -u ssh.service -u cron.service\n",[51,2098,2099,2104,2112,2116,2121,2132,2136,2141],{"__ignoreMap":71},[75,2100,2101],{"class":77,"line":78},[75,2102,2103],{"class":81},"# Логи службы Nginx (имя службы берется из systemd unit-файла)\n",[75,2105,2106,2108,2110],{"class":77,"line":85},[75,2107,433],{"class":88},[75,2109,471],{"class":92},[75,2111,474],{"class":114},[75,2113,2114],{"class":77,"line":96},[75,2115,100],{"emptyLinePlaceholder":99},[75,2117,2118],{"class":77,"line":103},[75,2119,2120],{"class":81},"# Логи службы Docker\n",[75,2122,2123,2125,2127,2130],{"class":77,"line":109},[75,2124,433],{"class":88},[75,2126,471],{"class":92},[75,2128,2129],{"class":114}," docker.service",[75,2131,453],{"class":92},[75,2133,2134],{"class":77,"line":124},[75,2135,100],{"emptyLinePlaceholder":99},[75,2137,2138],{"class":77,"line":129},[75,2139,2140],{"class":81},"# Логи нескольких служб одновременно\n",[75,2142,2143,2145,2147,2150,2152],{"class":77,"line":135},[75,2144,433],{"class":88},[75,2146,471],{"class":92},[75,2148,2149],{"class":114}," ssh.service",[75,2151,471],{"class":92},[75,2153,2154],{"class":114}," cron.service\n",[308,2156,2157],{},[21,2158,408,2159,2162,2163,334],{},[35,2160,2161],{},"Важно:"," Имя службы должно быть точным. Узнать список всех активных юнитов можно командой ",[51,2164,2165],{},"systemctl list-units --type=service",[16,2167,2169],{"id":2168},"шаг-3-фильтрация-по-уровню-серьезности-priority","Шаг 3: Фильтрация по уровню серьезности (PRIORITY)",[21,2171,2172],{},"Каждая запись имеет приоритет от 0 (emerg) до 7 (debug). Для отладки чаще всего нужны ошибки и предупреждения.",[66,2174,2176],{"className":68,"code":2175,"language":70,"meta":71,"style":71},"# Только ошибки (err) и критичные (crit, emerg)\njournalctl -p err\n\n# Только предупреждения и ошибки\njournalctl -p warning\n\n# Все, кроме отладочных сообщений (info и выше)\njournalctl -p info\n\n# Комбинация уровней: err, warn, notice\njournalctl -p err -p warn -p notice\n",[51,2177,2178,2183,2191,2195,2200,2209,2213,2218,2227,2231,2236],{"__ignoreMap":71},[75,2179,2180],{"class":77,"line":78},[75,2181,2182],{"class":81},"# Только ошибки (err) и критичные (crit, emerg)\n",[75,2184,2185,2187,2189],{"class":77,"line":85},[75,2186,433],{"class":88},[75,2188,544],{"class":92},[75,2190,547],{"class":114},[75,2192,2193],{"class":77,"line":96},[75,2194,100],{"emptyLinePlaceholder":99},[75,2196,2197],{"class":77,"line":103},[75,2198,2199],{"class":81},"# Только предупреждения и ошибки\n",[75,2201,2202,2204,2206],{"class":77,"line":109},[75,2203,433],{"class":88},[75,2205,544],{"class":92},[75,2207,2208],{"class":114}," warning\n",[75,2210,2211],{"class":77,"line":124},[75,2212,100],{"emptyLinePlaceholder":99},[75,2214,2215],{"class":77,"line":129},[75,2216,2217],{"class":81},"# Все, кроме отладочных сообщений (info и выше)\n",[75,2219,2220,2222,2224],{"class":77,"line":135},[75,2221,433],{"class":88},[75,2223,544],{"class":92},[75,2225,2226],{"class":114}," info\n",[75,2228,2229],{"class":77,"line":244},[75,2230,100],{"emptyLinePlaceholder":99},[75,2232,2233],{"class":77,"line":249},[75,2234,2235],{"class":81},"# Комбинация уровней: err, warn, notice\n",[75,2237,2238,2240,2242,2245,2247,2250,2252],{"class":77,"line":255},[75,2239,433],{"class":88},[75,2241,544],{"class":92},[75,2243,2244],{"class":114}," err",[75,2246,544],{"class":92},[75,2248,2249],{"class":114}," warn",[75,2251,544],{"class":92},[75,2253,2254],{"class":114}," notice\n",[21,2256,2257,2260,2261,2264],{},[35,2258,2259],{},"Шкала приоритетов (от самого серьезного):","\n0. ",[51,2262,2263],{},"emerg"," (система неработоспособна)",[29,2266,2267,2273,2279,2285,2291,2297,2303],{},[32,2268,2269,2272],{},[51,2270,2271],{},"alert"," (требуется немедленное действие)",[32,2274,2275,2278],{},[51,2276,2277],{},"crit"," (критическая ошибка)",[32,2280,2281,2284],{},[51,2282,2283],{},"err"," (ошибка)",[32,2286,2287,2290],{},[51,2288,2289],{},"warning"," (предупреждение)",[32,2292,2293,2296],{},[51,2294,2295],{},"notice"," (уведомление, нормальное, но значимое событие)",[32,2298,2299,2302],{},[51,2300,2301],{},"info"," (информационное сообщение)",[32,2304,2305,2308],{},[51,2306,2307],{},"debug"," (отладочное сообщение)",[16,2310,2312],{"id":2311},"шаг-4-фильтрация-по-времени","Шаг 4: Фильтрация по времени",[21,2314,2315],{},"Точное указание временного интервала — ключ к быстрому поиску.",[66,2317,2319],{"className":68,"code":2318,"language":70,"meta":71,"style":71},"# Логи за последние 10 минут\njournalctl --since \"10 minutes ago\"\n\n# Логи за сегодня (с 00:00)\njournalctl --since \"today\"\n\n# Логи за конкретную дату\njournalctl --since \"2026-02-15\" --until \"2026-02-16\"\n\n# Логи с точностью до секунды (формат: \"YYYY-MM-DD HH:MM:SS\")\njournalctl --since \"2026-02-15 14:30:00\" --until \"2026-02-15 15:00:00\"\n\n# Логи за последний час (сравнение с `-p err`)\njournalctl --since \"1 hour ago\" -p err\n",[51,2320,2321,2326,2335,2339,2344,2353,2357,2362,2377,2381,2386,2400,2404,2409],{"__ignoreMap":71},[75,2322,2323],{"class":77,"line":78},[75,2324,2325],{"class":81},"# Логи за последние 10 минут\n",[75,2327,2328,2330,2332],{"class":77,"line":85},[75,2329,433],{"class":88},[75,2331,519],{"class":92},[75,2333,2334],{"class":114}," \"10 minutes ago\"\n",[75,2336,2337],{"class":77,"line":96},[75,2338,100],{"emptyLinePlaceholder":99},[75,2340,2341],{"class":77,"line":103},[75,2342,2343],{"class":81},"# Логи за сегодня (с 00:00)\n",[75,2345,2346,2348,2350],{"class":77,"line":109},[75,2347,433],{"class":88},[75,2349,519],{"class":92},[75,2351,2352],{"class":114}," \"today\"\n",[75,2354,2355],{"class":77,"line":124},[75,2356,100],{"emptyLinePlaceholder":99},[75,2358,2359],{"class":77,"line":129},[75,2360,2361],{"class":81},"# Логи за конкретную дату\n",[75,2363,2364,2366,2368,2371,2374],{"class":77,"line":135},[75,2365,433],{"class":88},[75,2367,519],{"class":92},[75,2369,2370],{"class":114}," \"2026-02-15\"",[75,2372,2373],{"class":92}," --until",[75,2375,2376],{"class":114}," \"2026-02-16\"\n",[75,2378,2379],{"class":77,"line":244},[75,2380,100],{"emptyLinePlaceholder":99},[75,2382,2383],{"class":77,"line":249},[75,2384,2385],{"class":81},"# Логи с точностью до секунды (формат: \"YYYY-MM-DD HH:MM:SS\")\n",[75,2387,2388,2390,2392,2395,2397],{"class":77,"line":255},[75,2389,433],{"class":88},[75,2391,519],{"class":92},[75,2393,2394],{"class":114}," \"2026-02-15 14:30:00\"",[75,2396,2373],{"class":92},[75,2398,2399],{"class":114}," \"2026-02-15 15:00:00\"\n",[75,2401,2402],{"class":77,"line":267},[75,2403,100],{"emptyLinePlaceholder":99},[75,2405,2406],{"class":77,"line":272},[75,2407,2408],{"class":81},"# Логи за последний час (сравнение с `-p err`)\n",[75,2410,2411,2413,2415,2418,2420],{"class":77,"line":278},[75,2412,433],{"class":88},[75,2414,519],{"class":92},[75,2416,2417],{"class":114}," \"1 hour ago\"",[75,2419,544],{"class":92},[75,2421,547],{"class":114},[308,2423,2424],{},[21,2425,312,2426,2428,2429,981,2432,981,2435,334],{},[35,2427,2079],{}," Формат времени понимается довольно свободно. Можно писать ",[51,2430,2431],{},"\"5 min ago\"",[51,2433,2434],{},"\"yesterday\"",[51,2436,2437],{},"\"2026-02-15\"",[16,2439,2441],{"id":2440},"шаг-5-комбинирование-фильтров-и-поиск-по-полям","Шаг 5: Комбинирование фильтров и поиск по полям",[21,2443,2444,2445,2447,2448,2451,2452,2455,2456,334],{},"Сила ",[51,2446,433],{}," — в комбинировании фильтров и поиске по ",[35,2449,2450],{},"структурированным полям"," (префикс ",[51,2453,2454],{},"_","). Это гораздо точнее, чем ",[51,2457,577],{},[66,2459,2461],{"className":68,"code":2460,"language":70,"meta":71,"style":71},"# Логи службы nginx с уровнем ошибка за последние 30 минут\njournalctl -u nginx.service -p err --since \"30 minutes ago\"\n\n# Логи конкретного процесса по PID\njournalctl _PID=1234\n\n# Логи конкретного исполняемого файла\njournalctl _COMM=/usr/bin/ssh\n\n# Логи от определенного пользователя (UID)\njournalctl _UID=1000\n\n# Логи, связанные с конкретным сеансом (session)\njournalctl _SESSION=2\n",[51,2462,2463,2468,2485,2489,2494,2504,2508,2513,2520,2524,2529,2539,2543,2548],{"__ignoreMap":71},[75,2464,2465],{"class":77,"line":78},[75,2466,2467],{"class":81},"# Логи службы nginx с уровнем ошибка за последние 30 минут\n",[75,2469,2470,2472,2474,2476,2478,2480,2482],{"class":77,"line":85},[75,2471,433],{"class":88},[75,2473,471],{"class":92},[75,2475,494],{"class":114},[75,2477,544],{"class":92},[75,2479,2244],{"class":114},[75,2481,519],{"class":92},[75,2483,2484],{"class":114}," \"30 minutes ago\"\n",[75,2486,2487],{"class":77,"line":96},[75,2488,100],{"emptyLinePlaceholder":99},[75,2490,2491],{"class":77,"line":103},[75,2492,2493],{"class":81},"# Логи конкретного процесса по PID\n",[75,2495,2496,2498,2501],{"class":77,"line":109},[75,2497,433],{"class":88},[75,2499,2500],{"class":114}," _PID=",[75,2502,2503],{"class":92},"1234\n",[75,2505,2506],{"class":77,"line":124},[75,2507,100],{"emptyLinePlaceholder":99},[75,2509,2510],{"class":77,"line":129},[75,2511,2512],{"class":81},"# Логи конкретного исполняемого файла\n",[75,2514,2515,2517],{"class":77,"line":135},[75,2516,433],{"class":88},[75,2518,2519],{"class":114}," _COMM=/usr/bin/ssh\n",[75,2521,2522],{"class":77,"line":244},[75,2523,100],{"emptyLinePlaceholder":99},[75,2525,2526],{"class":77,"line":249},[75,2527,2528],{"class":81},"# Логи от определенного пользователя (UID)\n",[75,2530,2531,2533,2536],{"class":77,"line":255},[75,2532,433],{"class":88},[75,2534,2535],{"class":114}," _UID=",[75,2537,2538],{"class":92},"1000\n",[75,2540,2541],{"class":77,"line":267},[75,2542,100],{"emptyLinePlaceholder":99},[75,2544,2545],{"class":77,"line":272},[75,2546,2547],{"class":81},"# Логи, связанные с конкретным сеансом (session)\n",[75,2549,2550,2552,2555],{"class":77,"line":278},[75,2551,433],{"class":88},[75,2553,2554],{"class":114}," _SESSION=",[75,2556,2557],{"class":92},"2\n",[21,2559,2560],{},[35,2561,2562],{},"Популярные поля для фильтрации:",[703,2564,2565,2573,2578,2584,2590,2595,2601],{},[32,2566,2567,2569,2570,334],{},[51,2568,1984],{}," — аналог ",[51,2571,2572],{},"-u",[32,2574,2575,2577],{},[51,2576,1987],{}," — ID процесса.",[32,2579,2580,2583],{},[51,2581,2582],{},"_UID"," — ID пользователя.",[32,2585,2586,2589],{},[51,2587,2588],{},"_GID"," — ID группы.",[32,2591,2592,2594],{},[51,2593,1990],{}," — команда (имя исполняемого файла).",[32,2596,2597,2600],{},[51,2598,2599],{},"_EXE"," — полный путь к исполняемому файлу.",[32,2602,2603,2606],{},[51,2604,2605],{},"SYSLOG_IDENTIFIER"," — идентификатор, часто совпадает с именем программы.",[2608,2609,2611],"h3",{"id":2610},"поиск-по-тексту-если-фильтры-по-полям-не-помогают","Поиск по тексту (если фильтры по полям не помогают)",[21,2613,2614,2615,2617,2618,54],{},"Используйте стандартный ",[51,2616,577],{}," для поиска по свободному тексту сообщения (",[51,2619,2620],{},"MESSAGE",[66,2622,2624],{"className":68,"code":2623,"language":70,"meta":71,"style":71},"# Поиск всех упоминаний 'Connection refused' (без учета регистра)\njournalctl | grep -i \"connection refused\"\n\n# Поиск с контекстом (2 строки до и после)\njournalctl | grep -C 2 \"timeout\"\n\n# Поиск и подсчет количества совпадений\njournalctl | grep -c \"Failed password\"\n",[51,2625,2626,2631,2644,2648,2653,2670,2674,2679],{"__ignoreMap":71},[75,2627,2628],{"class":77,"line":78},[75,2629,2630],{"class":81},"# Поиск всех упоминаний 'Connection refused' (без учета регистра)\n",[75,2632,2633,2635,2637,2639,2641],{"class":77,"line":85},[75,2634,433],{"class":88},[75,2636,146],{"class":145},[75,2638,598],{"class":88},[75,2640,601],{"class":92},[75,2642,2643],{"class":114}," \"connection refused\"\n",[75,2645,2646],{"class":77,"line":96},[75,2647,100],{"emptyLinePlaceholder":99},[75,2649,2650],{"class":77,"line":103},[75,2651,2652],{"class":81},"# Поиск с контекстом (2 строки до и после)\n",[75,2654,2655,2657,2659,2661,2664,2667],{"class":77,"line":109},[75,2656,433],{"class":88},[75,2658,146],{"class":145},[75,2660,598],{"class":88},[75,2662,2663],{"class":92}," -C",[75,2665,2666],{"class":92}," 2",[75,2668,2669],{"class":114}," \"timeout\"\n",[75,2671,2672],{"class":77,"line":124},[75,2673,100],{"emptyLinePlaceholder":99},[75,2675,2676],{"class":77,"line":129},[75,2677,2678],{"class":81},"# Поиск и подсчет количества совпадений\n",[75,2680,2681,2683,2685,2687,2690],{"class":77,"line":135},[75,2682,433],{"class":88},[75,2684,146],{"class":145},[75,2686,598],{"class":88},[75,2688,2689],{"class":92}," -c",[75,2691,2692],{"class":114}," \"Failed password\"\n",[16,2694,2696],{"id":2695},"шаг-6-управление-выводом-и-экспорт","Шаг 6: Управление выводом и экспорт",[2608,2698,2700],{"id":2699},"изменение-формата-вывода","Изменение формата вывода",[21,2702,2703],{},"По умолчанию выводится много метаданных. Можно изменить формат.",[66,2705,2707],{"className":68,"code":2706,"language":70,"meta":71,"style":71},"# Краткий формат: только время и сообщение\njournalctl -o short\n\n# Подробный формат (с полями)\njournalctl -o verbose\n\n# JSON (удобно для скриптов и парсинга)\njournalctl -u nginx.service -o json --since \"1 hour ago\" > nginx_logs.json\n\n# JSON-pretty (читаемый JSON)\njournalctl -o json-pretty\n\n# Показать только поле сообщения (очень кратко)\njournalctl -o cat\n",[51,2708,2709,2714,2724,2728,2733,2742,2746,2751,2774,2778,2783,2792,2796,2801],{"__ignoreMap":71},[75,2710,2711],{"class":77,"line":78},[75,2712,2713],{"class":81},"# Краткий формат: только время и сообщение\n",[75,2715,2716,2718,2721],{"class":77,"line":85},[75,2717,433],{"class":88},[75,2719,2720],{"class":92}," -o",[75,2722,2723],{"class":114}," short\n",[75,2725,2726],{"class":77,"line":96},[75,2727,100],{"emptyLinePlaceholder":99},[75,2729,2730],{"class":77,"line":103},[75,2731,2732],{"class":81},"# Подробный формат (с полями)\n",[75,2734,2735,2737,2739],{"class":77,"line":109},[75,2736,433],{"class":88},[75,2738,2720],{"class":92},[75,2740,2741],{"class":114}," verbose\n",[75,2743,2744],{"class":77,"line":124},[75,2745,100],{"emptyLinePlaceholder":99},[75,2747,2748],{"class":77,"line":129},[75,2749,2750],{"class":81},"# JSON (удобно для скриптов и парсинга)\n",[75,2752,2753,2755,2757,2759,2761,2764,2766,2768,2771],{"class":77,"line":135},[75,2754,433],{"class":88},[75,2756,471],{"class":92},[75,2758,494],{"class":114},[75,2760,2720],{"class":92},[75,2762,2763],{"class":114}," json",[75,2765,519],{"class":92},[75,2767,2417],{"class":114},[75,2769,2770],{"class":145}," >",[75,2772,2773],{"class":114}," nginx_logs.json\n",[75,2775,2776],{"class":77,"line":244},[75,2777,100],{"emptyLinePlaceholder":99},[75,2779,2780],{"class":77,"line":249},[75,2781,2782],{"class":81},"# JSON-pretty (читаемый JSON)\n",[75,2784,2785,2787,2789],{"class":77,"line":255},[75,2786,433],{"class":88},[75,2788,2720],{"class":92},[75,2790,2791],{"class":114}," json-pretty\n",[75,2793,2794],{"class":77,"line":267},[75,2795,100],{"emptyLinePlaceholder":99},[75,2797,2798],{"class":77,"line":272},[75,2799,2800],{"class":81},"# Показать только поле сообщения (очень кратко)\n",[75,2802,2803,2805,2807],{"class":77,"line":278},[75,2804,433],{"class":88},[75,2806,2720],{"class":92},[75,2808,2809],{"class":114}," cat\n",[2608,2811,2813],{"id":2812},"ограничение-размера-вывода","Ограничение размера вывода",[66,2815,2817],{"className":68,"code":2816,"language":70,"meta":71,"style":71},"# Показать последние N записей (самый частый вариант)\njournalctl -n 100\n\n# Ограничить вывод по времени (например, за последние 2 часа)\njournalctl --since \"2 hours ago\"\n",[51,2818,2819,2824,2833,2837,2842],{"__ignoreMap":71},[75,2820,2821],{"class":77,"line":78},[75,2822,2823],{"class":81},"# Показать последние N записей (самый частый вариант)\n",[75,2825,2826,2828,2830],{"class":77,"line":85},[75,2827,433],{"class":88},[75,2829,2033],{"class":92},[75,2831,2832],{"class":92}," 100\n",[75,2834,2835],{"class":77,"line":96},[75,2836,100],{"emptyLinePlaceholder":99},[75,2838,2839],{"class":77,"line":103},[75,2840,2841],{"class":81},"# Ограничить вывод по времени (например, за последние 2 часа)\n",[75,2843,2844,2846,2848],{"class":77,"line":109},[75,2845,433],{"class":88},[75,2847,519],{"class":92},[75,2849,2850],{"class":114}," \"2 hours ago\"\n",[2608,2852,2854],{"id":2853},"сохранение-логов-в-файл","Сохранение логов в файл",[66,2856,2858],{"className":68,"code":2857,"language":70,"meta":71,"style":71},"# Сохранить логи службы ssh за последний день в файл\njournalctl -u ssh.service --since \"yesterday\" > ssh_logs.txt\n\n# Сохранить в JSON для последующего анализа скриптом\njournalctl -p err --since \"2026-02-01\" -o json > errors_feb.json\n",[51,2859,2860,2865,2883,2887,2892],{"__ignoreMap":71},[75,2861,2862],{"class":77,"line":78},[75,2863,2864],{"class":81},"# Сохранить логи службы ssh за последний день в файл\n",[75,2866,2867,2869,2871,2873,2875,2878,2880],{"class":77,"line":85},[75,2868,433],{"class":88},[75,2870,471],{"class":92},[75,2872,2149],{"class":114},[75,2874,519],{"class":92},[75,2876,2877],{"class":114}," \"yesterday\"",[75,2879,2770],{"class":145},[75,2881,2882],{"class":114}," ssh_logs.txt\n",[75,2884,2885],{"class":77,"line":96},[75,2886,100],{"emptyLinePlaceholder":99},[75,2888,2889],{"class":77,"line":103},[75,2890,2891],{"class":81},"# Сохранить в JSON для последующего анализа скриптом\n",[75,2893,2894,2896,2898,2900,2902,2905,2907,2909,2911],{"class":77,"line":109},[75,2895,433],{"class":88},[75,2897,544],{"class":92},[75,2899,2244],{"class":114},[75,2901,519],{"class":92},[75,2903,2904],{"class":114}," \"2026-02-01\"",[75,2906,2720],{"class":92},[75,2908,2763],{"class":114},[75,2910,2770],{"class":145},[75,2912,2913],{"class":114}," errors_feb.json\n",[16,2915,2917],{"id":2916},"шаг-7-управление-самим-журналом-вакуумация-ротация","Шаг 7: Управление самим журналом (вакуумация, ротация)",[21,2919,2920],{},"Журнал systemd по умолчанию может занимать много места (до 10% диска). Управление:",[66,2922,2924],{"className":68,"code":2923,"language":70,"meta":71,"style":71},"# Показать текущую статистику по журналу (размер, количество записей)\njournalctl --disk-usage\n\n# Очистить (удалить) все старые записи, оставив только последние N мегабайт\nsudo journalctl --vacuum-size=500M\n\n# Очистить записи старше указанного времени\nsudo journalctl --vacuum-time=3d  # старше 3 дней\nsudo journalctl --vacuum-time=1w  # старше 1 недели\n\n# Принудительно ротировать журнал (создать новый файл)\nsudo journalctl --rotate\n\n# Комбинация: ротация + очистка записей старше 1 дня\nsudo journalctl --rotate && sudo journalctl --vacuum-time=1d\n",[51,2925,2926,2931,2938,2942,2947,2956,2960,2965,2976,2988,2992,2997,3006,3010,3015],{"__ignoreMap":71},[75,2927,2928],{"class":77,"line":78},[75,2929,2930],{"class":81},"# Показать текущую статистику по журналу (размер, количество записей)\n",[75,2932,2933,2935],{"class":77,"line":85},[75,2934,433],{"class":88},[75,2936,2937],{"class":92}," --disk-usage\n",[75,2939,2940],{"class":77,"line":96},[75,2941,100],{"emptyLinePlaceholder":99},[75,2943,2944],{"class":77,"line":103},[75,2945,2946],{"class":81},"# Очистить (удалить) все старые записи, оставив только последние N мегабайт\n",[75,2948,2949,2951,2953],{"class":77,"line":109},[75,2950,41],{"class":88},[75,2952,450],{"class":114},[75,2954,2955],{"class":92}," --vacuum-size=500M\n",[75,2957,2958],{"class":77,"line":124},[75,2959,100],{"emptyLinePlaceholder":99},[75,2961,2962],{"class":77,"line":129},[75,2963,2964],{"class":81},"# Очистить записи старше указанного времени\n",[75,2966,2967,2969,2971,2973],{"class":77,"line":135},[75,2968,41],{"class":88},[75,2970,450],{"class":114},[75,2972,568],{"class":92},[75,2974,2975],{"class":81},"  # старше 3 дней\n",[75,2977,2978,2980,2982,2985],{"class":77,"line":244},[75,2979,41],{"class":88},[75,2981,450],{"class":114},[75,2983,2984],{"class":92}," --vacuum-time=1w",[75,2986,2987],{"class":81},"  # старше 1 недели\n",[75,2989,2990],{"class":77,"line":249},[75,2991,100],{"emptyLinePlaceholder":99},[75,2993,2994],{"class":77,"line":255},[75,2995,2996],{"class":81},"# Принудительно ротировать журнал (создать новый файл)\n",[75,2998,2999,3001,3003],{"class":77,"line":267},[75,3000,41],{"class":88},[75,3002,450],{"class":114},[75,3004,3005],{"class":92}," --rotate\n",[75,3007,3008],{"class":77,"line":272},[75,3009,100],{"emptyLinePlaceholder":99},[75,3011,3012],{"class":77,"line":278},[75,3013,3014],{"class":81},"# Комбинация: ротация + очистка записей старше 1 дня\n",[75,3016,3017,3019,3021,3024,3028,3030,3032],{"class":77,"line":550},[75,3018,41],{"class":88},[75,3020,450],{"class":114},[75,3022,3023],{"class":92}," --rotate",[75,3025,3027],{"class":3026},"sVt8B"," && ",[75,3029,41],{"class":88},[75,3031,450],{"class":114},[75,3033,3034],{"class":92}," --vacuum-time=1d\n",[308,3036,3037],{},[21,3038,408,3039,3041,3042,3045,3046,3049,3050,3053],{},[35,3040,2161],{}," Очистка (",[51,3043,3044],{},"--vacuum",") работает только с файлами в ",[51,3047,3048],{},"/var/log/journal",". Если журнал хранится только в памяти (",[51,3051,3052],{},"/run/log/journal","), он будет очищен при перезагрузке.",[16,3055,805],{"id":804},[29,3057,3058,3068,3080,3093],{},[32,3059,3060,3063,3064,3067],{},[35,3061,3062],{},"Базовый тест:"," Выполните ",[51,3065,3066],{},"journalctl -n 5 -f",". Вы должны увидеть последние 5 строк лога и новые записи при их появлении (например, при запуске службы).",[32,3069,3070,3063,3073,3076,3077,3079],{},[35,3071,3072],{},"Фильтрация:",[51,3074,3075],{},"journalctl -u ssh.service -p info",". В выводе должны быть только записи уровня ",[51,3078,2301],{}," и выше от службы SSH.",[32,3081,3082,3063,3085,3088,3089,3092],{},[35,3083,3084],{},"Экспорт:",[51,3086,3087],{},"journalctl --since \"1 hour ago\" -o json > test.json",". Файл ",[51,3090,3091],{},"test.json"," должен содержать валидный JSON-массив объектов-записей.",[32,3094,3095,3063,3098,3101,3102,3105],{},[35,3096,3097],{},"Управление:",[51,3099,3100],{},"sudo journalctl --disk-usage"," для проверки текущего размера. После ",[51,3103,3104],{},"sudo journalctl --vacuum-size=100M"," размер должен уменьшиться.",[21,3107,3108,3109,334],{},"Если все перечисленные команды выполняются без ошибок и вывод соответствует ожиданиям — вы успешно освоили основы работы с ",[51,3110,433],{},[16,3112,858],{"id":857},[2608,3114,3116],{"id":3115},"_1-failed-to-open-directory-varlogjournal-permission-denied","1. \"Failed to open directory /var/log/journal: Permission denied\"",[21,3118,3119,3122,3123,3126,3127,3129,3130,813,3132,3135],{},[35,3120,3121],{},"Причина:"," У текущего пользователя нет прав на чтение системных логов.\n",[35,3124,3125],{},"Решение:"," Используйте ",[51,3128,41],{}," перед командой или добавьте пользователя в группу ",[51,3131,1972],{},[51,3133,3134],{},"sudo usermod -aG systemd-journal $USER"," (требуется перелогин).",[2608,3137,3139,3140,3143],{"id":3138},"_2-нет-логов-для-нужной-службы-journalctl-u-пустой","2. Нет логов для нужной службы (",[51,3141,3142],{},"journalctl -u ..."," пустой)",[21,3145,3146,3149,3150,3153,3154,3156,3157,3160,3161,3164,3165,3168,3169,3171,3172,3175,3176,54],{},[35,3147,3148],{},"Причина а:"," Служба не использовала ",[51,3151,3152],{},"stdout/stderr"," для логирования (использует отдельный файл).\n",[35,3155,3125],{}," Проверьте конфигурацию службы (",[51,3158,3159],{},"/etc/systemd/system/\u003Cимя>.service","), опция ",[51,3162,3163],{},"StandardOutput",". Возможно, логи идут в отдельный файл, а не в journald.\n",[35,3166,3167],{},"Причина б:"," Служба не запускалась в рассматриваемом периоде.\n",[35,3170,3125],{}," Убедитесь, что служба активна (",[51,3173,3174],{},"systemctl status \u003Cимя>","). Проверьте временной интервал (",[51,3177,1302],{},[2608,3179,3181],{"id":3180},"_3-no-journal-files-were-found","3. \"No journal files were found.\"",[21,3183,3184,3186,3187,3189,3190,3192,3193,3196,3197,3199],{},[35,3185,3121],{}," systemd-journald настроен на хранение логов только в памяти (",[51,3188,3052],{},"), и вы перезагрузили систему.\n",[35,3191,3125],{}," Для постоянного хранения создайте директорию: ",[51,3194,3195],{},"sudo mkdir -p /var/log/journal && sudo systemd-tmpfiles --create --prefix /var/log/journal",". Логи начнут сохраняться после перезапуска службы ",[51,3198,1901],{}," или перезагрузки.",[2608,3201,3203],{"id":3202},"_4-слишком-много-данных-поиск-работает-медленно","4. Слишком много данных, поиск работает медленно",[21,3205,3206,3208,3209,3211,3212,3215,3216,981,3218,3220,3221,3223],{},[35,3207,3125],{}," Всегда сужайте временной интервал (",[51,3210,1302],{},") и уровень приоритета (",[51,3213,3214],{},"-p","). Используйте фильтрацию по полям (",[51,3217,1987],{},[51,3219,1984],{},") вместо ",[51,3222,577],{},", так как поиск по индексированным полям происходит в разы быстрее.",[2608,3225,3227,3228,3230],{"id":3226},"_5-нужно-мониторить-логи-но-journalctl-f-не-показывает-новые-записи","5. Нужно мониторить логи, но ",[51,3229,1286],{}," не показывает новые записи",[21,3232,3233,3235,3236,3238,3239,3241,3242,3245,3246,3248,3249,3252,3253,3255,3256,3259,3260,334],{},[35,3234,3121],{}," Вы запустили ",[51,3237,433],{}," с очень старым ",[51,3240,1302],{}," или без ",[51,3243,3244],{},"-f",", и вывод \"завис\" в начале.\n",[35,3247,3125],{}," Нажмите ",[51,3250,3251],{},"Ctrl+C"," и запустите заново с ",[51,3254,3244],{}," и, возможно, с ",[51,3257,3258],{},"-n 0"," (не показывать старые записи): ",[51,3261,3262],{},"journalctl -u service.name -f -n 0",[3264,3265],"hr",{},[322,3267],{},[16,3269,3271],{"id":3270},"продвинутые-сценарии-и-примеры","Продвинутые сценарии и примеры",[2608,3273,3275],{"id":3274},"поиск-последних-перезагрузок-и-их-причин","Поиск последних перезагрузок и их причин",[66,3277,3279],{"className":68,"code":3278,"language":70,"meta":71,"style":71},"# Найти все записи о перезагрузке (сообщение от systemd)\njournalctl -b -1 -u systemd-logind.service | grep -i \"system reboot\" -A5 -B5\n",[51,3280,3281,3286],{"__ignoreMap":71},[75,3282,3283],{"class":77,"line":78},[75,3284,3285],{"class":81},"# Найти все записи о перезагрузке (сообщение от systemd)\n",[75,3287,3288,3290,3293,3296,3298,3301,3303,3305,3307,3310,3313],{"class":77,"line":85},[75,3289,433],{"class":88},[75,3291,3292],{"class":92}," -b",[75,3294,3295],{"class":92}," -1",[75,3297,471],{"class":92},[75,3299,3300],{"class":114}," systemd-logind.service",[75,3302,146],{"class":145},[75,3304,598],{"class":88},[75,3306,601],{"class":92},[75,3308,3309],{"class":114}," \"system reboot\"",[75,3311,3312],{"class":92}," -A5",[75,3314,3315],{"class":92}," -B5\n",[21,3317,3318,3321],{},[51,3319,3320],{},"-b -1"," — логи предыдущей загрузки (boot). Это помогает найти, что происходило перед падением системы.",[2608,3323,3325],{"id":3324},"анализ-причин-падения-службы-failed","Анализ причин падения службы (Failed)",[66,3327,3329],{"className":68,"code":3328,"language":70,"meta":71,"style":71},"# Найти все неудачные запуски служб\njournalctl -p err | grep -i \"failed\"\n\n# Или точнее, по полю результата юнита\njournalctl _SYSTEMD_UNIT=nginx.service _SYSTEMD_INVOCATION_ID=$(systemctl show nginx.service -p InvocationID --value)\n",[51,3330,3331,3336,3353,3357,3362],{"__ignoreMap":71},[75,3332,3333],{"class":77,"line":78},[75,3334,3335],{"class":81},"# Найти все неудачные запуски служб\n",[75,3337,3338,3340,3342,3344,3346,3348,3350],{"class":77,"line":85},[75,3339,433],{"class":88},[75,3341,544],{"class":92},[75,3343,2244],{"class":114},[75,3345,146],{"class":145},[75,3347,598],{"class":88},[75,3349,601],{"class":92},[75,3351,3352],{"class":114}," \"failed\"\n",[75,3354,3355],{"class":77,"line":96},[75,3356,100],{"emptyLinePlaceholder":99},[75,3358,3359],{"class":77,"line":103},[75,3360,3361],{"class":81},"# Или точнее, по полю результата юнита\n",[75,3363,3364,3366,3369,3372,3375,3377,3380,3382,3384,3387,3390],{"class":77,"line":109},[75,3365,433],{"class":88},[75,3367,3368],{"class":114}," _SYSTEMD_UNIT=nginx.service",[75,3370,3371],{"class":114}," _SYSTEMD_INVOCATION_ID=",[75,3373,3374],{"class":3026},"$(",[75,3376,89],{"class":88},[75,3378,3379],{"class":114}," show",[75,3381,494],{"class":114},[75,3383,544],{"class":92},[75,3385,3386],{"class":114}," InvocationID",[75,3388,3389],{"class":92}," --value",[75,3391,3392],{"class":3026},")\n",[2608,3394,3396],{"id":3395},"сравнение-логов-двух-загрузок-boot","Сравнение логов двух загрузок (boot)",[66,3398,3400],{"className":68,"code":3399,"language":70,"meta":71,"style":71},"# Сравнить разницу в логах между текущей и предыдущей загрузкой\njournalctl -b -0 > current_boot.log\njournalctl -b -1 > previous_boot.log\ndiff -u previous_boot.log current_boot.log | less\n",[51,3401,3402,3407,3421,3434],{"__ignoreMap":71},[75,3403,3404],{"class":77,"line":78},[75,3405,3406],{"class":81},"# Сравнить разницу в логах между текущей и предыдущей загрузкой\n",[75,3408,3409,3411,3413,3416,3418],{"class":77,"line":85},[75,3410,433],{"class":88},[75,3412,3292],{"class":92},[75,3414,3415],{"class":92}," -0",[75,3417,2770],{"class":145},[75,3419,3420],{"class":114}," current_boot.log\n",[75,3422,3423,3425,3427,3429,3431],{"class":77,"line":96},[75,3424,433],{"class":88},[75,3426,3292],{"class":92},[75,3428,3295],{"class":92},[75,3430,2770],{"class":145},[75,3432,3433],{"class":114}," previous_boot.log\n",[75,3435,3436,3439,3441,3444,3447,3449],{"class":77,"line":103},[75,3437,3438],{"class":88},"diff",[75,3440,471],{"class":92},[75,3442,3443],{"class":114}," previous_boot.log",[75,3445,3446],{"class":114}," current_boot.log",[75,3448,146],{"class":145},[75,3450,3451],{"class":88}," less\n",[2608,3453,3455],{"id":3454},"мониторинг-в-реальном-времени-с-цветовой-подсветкой","Мониторинг в реальном времени с цветовой подсветкой",[21,3457,3458,3460,3461,578],{},[51,3459,433],{}," не поддерживает цвета из коробки, но можно обернуть в ",[51,3462,3463],{},"grep --color",[66,3465,3467],{"className":68,"code":3466,"language":70,"meta":71,"style":71},"journalctl -f | grep --color -E \"error|failed|exception|WARNING\"\n",[51,3468,3469],{"__ignoreMap":71},[75,3470,3471,3473,3475,3477,3479,3482,3485],{"class":77,"line":78},[75,3472,433],{"class":88},[75,3474,2052],{"class":92},[75,3476,146],{"class":145},[75,3478,598],{"class":88},[75,3480,3481],{"class":92}," --color",[75,3483,3484],{"class":92}," -E",[75,3486,3487],{"class":114}," \"error|failed|exception|WARNING\"\n",[2608,3489,3491],{"id":3490},"использование-в-скриптах-без-постраничного-просмотра","Использование в скриптах (без постраничного просмотра)",[21,3493,3494,3495,3497],{},"Всегда используйте ",[51,3496,1162],{}," в скриптах, чтобы команда не ждала нажатия клавиши.",[66,3499,3501],{"className":68,"code":3500,"language":70,"meta":71,"style":71},"#!/bin/bash\n# Проверить, были ли ошибки nginx за последние 15 минут\nif journalctl -u nginx.service --since \"15 minutes ago\" -p err --no-pager | grep -q .; then\n    echo \"Обнаружены ошибки в nginx!\"\n    # Можно отправить уведомление или перезапустить службу\n    systemctl restart nginx\nfi\n",[51,3502,3503,3508,3513,3552,3560,3565,3574],{"__ignoreMap":71},[75,3504,3505],{"class":77,"line":78},[75,3506,3507],{"class":81},"#!/bin/bash\n",[75,3509,3510],{"class":77,"line":85},[75,3511,3512],{"class":81},"# Проверить, были ли ошибки nginx за последние 15 минут\n",[75,3514,3515,3518,3520,3522,3524,3526,3529,3531,3533,3536,3538,3540,3543,3546,3549],{"class":77,"line":96},[75,3516,3517],{"class":145},"if",[75,3519,450],{"class":88},[75,3521,471],{"class":92},[75,3523,494],{"class":114},[75,3525,519],{"class":92},[75,3527,3528],{"class":114}," \"15 minutes ago\"",[75,3530,544],{"class":92},[75,3532,2244],{"class":114},[75,3534,3535],{"class":92}," --no-pager",[75,3537,146],{"class":145},[75,3539,598],{"class":88},[75,3541,3542],{"class":92}," -q",[75,3544,3545],{"class":114}," .",[75,3547,3548],{"class":3026},"; ",[75,3550,3551],{"class":145},"then\n",[75,3553,3554,3557],{"class":77,"line":103},[75,3555,3556],{"class":92},"    echo",[75,3558,3559],{"class":114}," \"Обнаружены ошибки в nginx!\"\n",[75,3561,3562],{"class":77,"line":109},[75,3563,3564],{"class":81},"    # Можно отправить уведомление или перезапустить службу\n",[75,3566,3567,3570,3572],{"class":77,"line":124},[75,3568,3569],{"class":88},"    systemctl",[75,3571,239],{"class":114},[75,3573,201],{"class":114},[75,3575,3576],{"class":77,"line":129},[75,3577,3578],{"class":145},"fi\n",[1037,3580,3581],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":71,"searchDepth":85,"depth":85,"links":3583},[3584,3585,3586,3587,3588,3589,3590,3593,3598,3599,3600,3609],{"id":18,"depth":85,"text":19},{"id":26,"depth":85,"text":27},{"id":2000,"depth":85,"text":2001},{"id":2089,"depth":85,"text":2090},{"id":2168,"depth":85,"text":2169},{"id":2311,"depth":85,"text":2312},{"id":2440,"depth":85,"text":2441,"children":3591},[3592],{"id":2610,"depth":96,"text":2611},{"id":2695,"depth":85,"text":2696,"children":3594},[3595,3596,3597],{"id":2699,"depth":96,"text":2700},{"id":2812,"depth":96,"text":2813},{"id":2853,"depth":96,"text":2854},{"id":2916,"depth":85,"text":2917},{"id":804,"depth":85,"text":805},{"id":857,"depth":85,"text":858,"children":3601},[3602,3603,3605,3606,3607],{"id":3115,"depth":96,"text":3116},{"id":3138,"depth":96,"text":3604},"2. Нет логов для нужной службы (journalctl -u ... пустой)",{"id":3180,"depth":96,"text":3181},{"id":3202,"depth":96,"text":3203},{"id":3226,"depth":96,"text":3608},"5. Нужно мониторить логи, но journalctl -f не показывает новые записи",{"id":3270,"depth":85,"text":3271,"children":3610},[3611,3612,3613,3614,3615],{"id":3274,"depth":96,"text":3275},{"id":3324,"depth":96,"text":3325},{"id":3395,"depth":96,"text":3396},{"id":3454,"depth":96,"text":3455},{"id":3490,"depth":96,"text":3491},"2026-02-16 14:15:51","Изучите мощный инструмент journalctl для просмотра, фильтрации и анализа системных логов в Linux. Пошаговые примеры для отладки служб, поиска ошибок и мониторинга.","15-25 мин",[3620,3623,3626,3629],{"question":3621,"answer":3622},"Чем journalctl отличается от /var/log/syslog или dmesg?","journalctl читает бинарный журнал systemd, который агрегирует логи со всех служб и ядра, поддерживает структурированный поиск и метаданные. Традиционные текстовые файлы часто содержат лишь часть информации.",{"question":3624,"answer":3625},"Как очистить журналы systemd, если они заняли весь диск?","Используйте `sudo journalctl --rotate && sudo journalctl --vacuum-time=1d` для удаления логов старше дня. Для принудительной очистки всех данных — `sudo rm -rf /var/log/journal/*` (осторожно!).",{"question":3627,"answer":3628},"Как мониторить логи в реальном времени, как tail -f?","Достаточно `journalctl -f`. Для отслеживания конкретной службы: `journalctl -u nginx.service -f`.",{"question":3630,"answer":3631},"Почему некоторые старые логи отсутствуют в journalctl?","По умолчанию журнал хранится в памяти (`/run/log/journal`). Для постоянного хранения создайте `/var/log/journal` (`sudo mkdir -p /var/log/journal && sudo systemd-tmpfiles --create --prefix /var/log/journal`).",[3633,3636,3639,3642,3645,3648],{"name":3634,"text":3635},"Просмотр последних записей журнала","Используйте `journalctl` без параметров для вывода всех логов с древнейшей записи. Добавьте `-n 50` для показа только 50 последних строк.",{"name":3637,"text":3638},"Отслеживание логов в реальном времени","Запустите `journalctl -f` для 'слежения' за журналом, аналогично `tail -f`. Для конкретной службы добавьте `-u \u003Cимя_службы>`.",{"name":3640,"text":3641},"Фильтрация по службе (unit)","Чтобы увидеть логи только nginx: `journalctl -u nginx.service`. Можно комбинировать с `-f` для мониторинга.",{"name":3643,"text":3644},"Фильтрация по приоритету (уровню серьезности)","Покажите только ошибки: `journalctl -p err`. Уровни: emerg, alert, crit, err, warning, notice, info, debug.",{"name":3646,"text":3647},"Поиск по времени","Логи за последний час: `journalctl --since \"1 hour ago\"`. Конкретный интервал: `journalctl --since \"2026-02-15 14:00:00\" --until \"2026-02-15 15:00:00\"`.",{"name":3649,"text":3650},"Поиск по тексту (включая регулярные выражения)","Найдите все упоминания 'timeout': `journalctl | grep -i timeout`. Для поиска по полю (например, PID) используйте `journalctl _PID=1234`.",[3652,3653,3654,3655,3656,3657,3658,3659,3660],"journalctl команды","как посмотреть логи systemd","фильтрация логов journalctl","поиск ошибок в journalctl","journalctl -u служба","анализ логов systemd","journalctl примеры","systemd journal","просмотр логов службы",{},[3663,3664,1104],"/guides/linux/systemd-analyze-boot","/guides/linux/logrotate-configuration",{"title":1883,"description":3617},"guides/linux/journalctl-usage","Это руководство научит вас эффективно использовать journalctl — утилиту для запроса журналов systemd. Вы узнаете, как фильтровать логи по службам, времени и приоритету, искать конкретные ошибки и сохранять результаты для анализа.",[1100,48,433,3669,3670,3671],"logs","admin","debugging","QYh3A_6P3H_BXEvboZqf-WlrQ_Ow8MI2NiimTFkMH-0",{"id":3674,"title":3675,"appliesTo":3676,"author":11,"body":3680,"canonical":1051,"code":4531,"createdAt":4532,"description":4533,"difficulty":1054,"draft":1055,"estimatedTime":4534,"extension":1057,"faq":4535,"howToSteps":4548,"howToTotalTime":1087,"image":1051,"keywords":4567,"locale":1097,"meta":4576,"navigation":99,"path":1104,"platform":1100,"related":4577,"section":4581,"seo":4582,"severity":4583,"stem":4584,"summary":4585,"tags":4586,"twitterCreator":1051,"twitterSite":1051,"type":4590,"updatedAt":4532,"__hash__":4591},"content_ru/errors/linux/systemd-failed-to-start.md","systemd-failed-to-start: причины и методы исправления ошибки запуска",[3677,3678,8,3679,10],"systemd 245+","Ubuntu 20.04+","CentOS 8+",{"type":13,"value":3681,"toc":4515},[3682,3689,3699,3706,3720,3724,3727,3801,3805,3811,3814,3887,3901,3905,3908,4027,4031,4135,4139,4142,4231,4235,4300,4302,4306,4309,4431,4435,4438,4512],[16,3683,3685,3686],{"id":3684},"что-означает-ошибка-systemd-failed-to-start","Что означает ошибка ",[51,3687,3688],{},"systemd-failed-to-start",[21,3690,1766,3691,3694,3695,3698],{},[35,3692,3693],{},"Failed to start"," — это общий статус, который systemd присваивает службе (юниту), когда процесс её запуска завершился с ненулевым кодом возврата, превысил заданный таймаут или столкнулся с критической проблемой при инициализации. В выводе команды ",[51,3696,3697],{},"systemctl status"," она выглядит как:",[66,3700,3704],{"className":3701,"code":3703,"language":1131},[3702],"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",[51,3705,3703],{"__ignoreMap":71},[21,3707,3708,3709,1304,3712,3715,3716,3719],{},"Ключевые флаги: ",[51,3710,3711],{},"Active: failed",[51,3713,3714],{},"Result: exit-code"," (или ",[51,3717,3718],{},"timeout","). Эта ошибка блокирует работу сервиса и может помешать загрузке системы, если юнит критичен.",[16,3721,3723],{"id":3722},"причины-возникновения","Причины возникновения",[21,3725,3726],{},"Причины носят конкретный технический характер:",[29,3728,3729,3751,3763,3769,3782,3791],{},[32,3730,3731,3734,3735,3737,3738,3740,3741,981,3743,3746,3747,3750],{},[35,3732,3733],{},"Некорректный конфигурационный файл юнита"," (",[51,3736,1010],{},"). Ошибки в секциях ",[51,3739,1810],{}," (неверный путь в ",[51,3742,947],{},[51,3744,3745],{},"ExecStartPre","), ",[51,3748,3749],{},"[Install]"," или синтаксис.",[32,3752,3753,3756,3757,3760,3761,54],{},[35,3754,3755],{},"Недостаток прав доступа",". Служба пытается прочитать/записать в каталог, к которому у неё нет прав (например, ",[51,3758,3759],{},"/var/log/app/","), или запускается от неправильного пользователя (",[51,3762,973],{},[32,3764,3765,3768],{},[35,3766,3767],{},"Конфликт ресурсов",". Порт уже занят другим процессом, недостаточно памяти (OOM Killer), не хватает дескрипторов файлов.",[32,3770,3771,3774,3775,902,3778,3781],{},[35,3772,3773],{},"Зависимости не выполнены",". Указанные в ",[51,3776,3777],{},"Requires=",[51,3779,3780],{},"After="," службы не запустились или завершились с ошибкой.",[32,3783,3784,3787,3788,3790],{},[35,3785,3786],{},"Повреждение бинарного файла или зависимостей приложения",". Файл, указанный в ",[51,3789,947],{},", отсутствует, неисправен или не может загрузить нужные библиотеки.",[32,3792,3793,3796,3797,3800],{},[35,3794,3795],{},"Превышение таймаута",". Приложение долго не отвечает на запросы инициализации, и systemd убивает его по истечении ",[51,3798,3799],{},"TimeoutStartSec="," (по умолчанию 90 сек).",[16,3802,3804],{"id":3803},"способы-решения","Способы решения",[2608,3806,3808,3809],{"id":3807},"способ-1-анализ-логов-службы-через-journalctl","Способ 1: Анализ логов службы через ",[51,3810,433],{},[21,3812,3813],{},"Это первый и самый важный шаг. Логи systemd содержат детальный вывод программы.",[29,3815,3816,3822,3846,3863],{},[32,3817,3818,3819,54],{},"Узнайте точное имя службы (например, ",[51,3820,3821],{},"nginx.service",[32,3823,3824,3825,3828,3829],{},"Выполните команду для просмотра логов ",[35,3826,3827],{},"за текущую загрузку",":\n",[66,3830,3832],{"className":68,"code":3831,"language":70,"meta":71,"style":71},"journalctl -u nginx.service -b --no-pager\n",[51,3833,3834],{"__ignoreMap":71},[75,3835,3836,3838,3840,3842,3844],{"class":77,"line":78},[75,3837,433],{"class":88},[75,3839,471],{"class":92},[75,3841,494],{"class":114},[75,3843,3292],{"class":92},[75,3845,2072],{"class":92},[32,3847,3848,3849,981,3852,981,3855,981,3858,981,3860,334],{},"Внимательно изучите последние 20-30 строк. Ищите слова ",[35,3850,3851],{},"Failed",[35,3853,3854],{},"Error",[35,3856,3857],{},"(code=exited, status=...)",[35,3859,912],{},[35,3861,3862],{},"No such file or directory",[32,3864,3865,3866],{},"Если лог обширный, фильтруйте по уровню ошибки:\n",[66,3867,3869],{"className":68,"code":3868,"language":70,"meta":71,"style":71},"journalctl -u nginx.service -b -p err --no-pager\n",[51,3870,3871],{"__ignoreMap":71},[75,3872,3873,3875,3877,3879,3881,3883,3885],{"class":77,"line":78},[75,3874,433],{"class":88},[75,3876,471],{"class":92},[75,3878,494],{"class":114},[75,3880,3292],{"class":92},[75,3882,544],{"class":92},[75,3884,2244],{"class":114},[75,3886,2072],{"class":92},[308,3888,3889],{},[21,3890,312,3891,3893,3894,3897,3898,3900],{},[35,3892,315],{},": Добавьте флаг ",[51,3895,3896],{},"-e"," для открытия лога сразу в конце, или ",[51,3899,3244],{}," для отслеживания в реальном времени при перезапуске службы.",[2608,3902,3904],{"id":3903},"способ-2-проверка-и-исправление-конфигурационного-файла","Способ 2: Проверка и исправление конфигурационного файла",[21,3906,3907],{},"Ошибки в юнит-файле — частая причина.",[29,3909,3910,3938,3960,4012],{},[32,3911,3912,3913],{},"Найдите файл службы:\n",[66,3914,3916],{"className":68,"code":3915,"language":70,"meta":71,"style":71},"systemctl status nginx.service | grep Loaded\n# Вывод: Loaded: loaded (/etc/systemd/system/nginx.service; enabled; ...)\n",[51,3917,3918,3933],{"__ignoreMap":71},[75,3919,3920,3922,3924,3926,3928,3930],{"class":77,"line":78},[75,3921,89],{"class":88},[75,3923,285],{"class":114},[75,3925,494],{"class":114},[75,3927,146],{"class":145},[75,3929,598],{"class":88},[75,3931,3932],{"class":114}," Loaded\n",[75,3934,3935],{"class":77,"line":85},[75,3936,3937],{"class":81},"# Вывод: Loaded: loaded (/etc/systemd/system/nginx.service; enabled; ...)\n",[32,3939,3940,3941,3959],{},"Проверьте синтаксис:\n",[66,3942,3944],{"className":68,"code":3943,"language":70,"meta":71,"style":71},"sudo systemd-analyze verify /etc/systemd/system/nginx.service\n",[51,3945,3946],{"__ignoreMap":71},[75,3947,3948,3950,3953,3956],{"class":77,"line":78},[75,3949,41],{"class":88},[75,3951,3952],{"class":114}," systemd-analyze",[75,3954,3955],{"class":114}," verify",[75,3957,3958],{"class":114}," /etc/systemd/system/nginx.service\n","\nКоманда покажет строку с ошибкой, если она есть (например, \"Invalid command 'Execstar', not part of a unit configuration\").",[32,3961,3962,3963,3966,3967],{},"Откройте файл в редакторе (",[51,3964,3965],{},"sudo nano /etc/systemd/system/nginx.service",") и проверьте:\n",[703,3968,3969,3983,3993,4005],{},[32,3970,3971,3972,981,3974,3976,3977,902,3980,1784],{},"Пути в ",[51,3973,947],{},[51,3975,3745],{},": существуют ли они? (",[51,3978,3979],{},"which some-binary",[51,3981,3982],{},"ls -la /path/to/file",[32,3984,3985,3986,3989,3990,54],{},"Права на исполняемый файл (",[51,3987,3988],{},"ls -l /usr/bin/some-binary"," — должен быть ",[51,3991,3992],{},"-rwxr-xr-x",[32,3994,3995,3996,3998,3999,1304,4001,4004],{},"Секцию ",[51,3997,1810],{},": правильно ли указаны ",[51,4000,973],{},[51,4002,4003],{},"Group=","? Существует ли такой пользователь/группа?",[32,4006,4007,4008,4011],{},"Директиву ",[51,4009,4010],{},"WorkingDirectory=",": существует ли каталог?",[32,4013,4014,4015],{},"После исправлений выполните:\n",[66,4016,4017],{"className":68,"code":1669,"language":70,"meta":71,"style":71},[51,4018,4019],{"__ignoreMap":71},[75,4020,4021,4023,4025],{"class":77,"line":78},[75,4022,41],{"class":88},[75,4024,195],{"class":114},[75,4026,759],{"class":114},[2608,4028,4030],{"id":4029},"способ-3-проверка-зависимостей-и-конфликтов-портовресурсов","Способ 3: Проверка зависимостей и конфликтов портов/ресурсов",[29,4032,4033,4065,4090],{},[32,4034,4035,4038,4039,4064],{},[35,4036,4037],{},"Проверьте, не занят ли порт"," (если служба сетевая):\n",[66,4040,4042],{"className":68,"code":4041,"language":70,"meta":71,"style":71},"sudo ss -tulpn | grep :80  # Замените 80 на порт вашей службы\n",[51,4043,4044],{"__ignoreMap":71},[75,4045,4046,4048,4051,4054,4056,4058,4061],{"class":77,"line":78},[75,4047,41],{"class":88},[75,4049,4050],{"class":114}," ss",[75,4052,4053],{"class":92}," -tulpn",[75,4055,146],{"class":145},[75,4057,598],{"class":88},[75,4059,4060],{"class":114}," :80",[75,4062,4063],{"class":81},"  # Замените 80 на порт вашей службы\n","\nЕсли порт занят другим процессом, найдите и остановите его или измените порт в конфиге службы.",[32,4066,4067,3828,4070,4087,4088,334],{},[35,4068,4069],{},"Проверьте, все ли требуемые службы работают",[66,4071,4073],{"className":68,"code":4072,"language":70,"meta":71,"style":71},"systemctl list-dependencies nginx.service --reverse\n",[51,4074,4075],{"__ignoreMap":71},[75,4076,4077,4079,4082,4084],{"class":77,"line":78},[75,4078,89],{"class":88},[75,4080,4081],{"class":114}," list-dependencies",[75,4083,494],{"class":114},[75,4085,4086],{"class":92}," --reverse\n","\nЭто покажет, какие службы зависят от nginx. Убедитесь, что они в состоянии ",[51,4089,820],{},[32,4091,4092,3828,4095,4134],{},[35,4093,4094],{},"Проверьте наличие свободных ресурсов",[66,4096,4098],{"className":68,"code":4097,"language":70,"meta":71,"style":71},"free -h        # Память\ndf -h /var     # Дисковое пространство (особенно для логов)\nulimit -n      # Лимит дескрипторов файлов (может быть мал)\n",[51,4099,4100,4111,4124],{"__ignoreMap":71},[75,4101,4102,4105,4108],{"class":77,"line":78},[75,4103,4104],{"class":88},"free",[75,4106,4107],{"class":92}," -h",[75,4109,4110],{"class":81},"        # Память\n",[75,4112,4113,4116,4118,4121],{"class":77,"line":85},[75,4114,4115],{"class":88},"df",[75,4117,4107],{"class":92},[75,4119,4120],{"class":114}," /var",[75,4122,4123],{"class":81},"     # Дисковое пространство (особенно для логов)\n",[75,4125,4126,4129,4131],{"class":77,"line":96},[75,4127,4128],{"class":92},"ulimit",[75,4130,2033],{"class":92},[75,4132,4133],{"class":81},"      # Лимит дескрипторов файлов (может быть мал)\n","\nНедостаток любого ресурса может привести к падению службы при старте.",[2608,4136,4138],{"id":4137},"способ-4-восстановление-из-пакета-или-ручная-переустановка","Способ 4: Восстановление из пакета или ручная переустановка",[21,4140,4141],{},"Если служба установлена из пакетного менеджера (apt, dnf, yum), её конфигурация могла быть повреждена.",[29,4143,4144,4190,4212],{},[32,4145,4146,3828,4149,4182,4183,4186,4187,334],{},[35,4147,4148],{},"Debian/Ubuntu",[66,4150,4152],{"className":68,"code":4151,"language":70,"meta":71,"style":71},"sudo apt update\nsudo apt install --reinstall nginx  # Замените nginx на имя пакета\n",[51,4153,4154,4164],{"__ignoreMap":71},[75,4155,4156,4158,4161],{"class":77,"line":78},[75,4157,41],{"class":88},[75,4159,4160],{"class":114}," apt",[75,4162,4163],{"class":114}," update\n",[75,4165,4166,4168,4170,4173,4176,4179],{"class":77,"line":85},[75,4167,41],{"class":88},[75,4169,4160],{"class":114},[75,4171,4172],{"class":114}," install",[75,4174,4175],{"class":92}," --reinstall",[75,4177,4178],{"class":114}," nginx",[75,4180,4181],{"class":81},"  # Замените nginx на имя пакета\n","\nЭто восстановит файлы из ",[51,4184,4185],{},"/usr/share/doc/nginx/examples/"," или оригинальные конфиги в ",[51,4188,4189],{},"/etc/",[32,4191,4192,3828,4195],{},[35,4193,4194],{},"RHEL/CentOS/Fedora",[66,4196,4198],{"className":68,"code":4197,"language":70,"meta":71,"style":71},"sudo dnf reinstall nginx\n",[51,4199,4200],{"__ignoreMap":71},[75,4201,4202,4204,4207,4210],{"class":77,"line":78},[75,4203,41],{"class":88},[75,4205,4206],{"class":114}," dnf",[75,4208,4209],{"class":114}," reinstall",[75,4211,201],{"class":114},[32,4213,4214,4215,4218,4219,4222,4223,4226,4227,4230],{},"После переустановки ",[35,4216,4217],{},"не перезаписывайте"," свои кастомные настройки в ",[51,4220,4221],{},"/etc/nginx/nginx.conf"," (если они были), если пакетный менеджер спросит. Сравните старый и новый файлы конфигурации юнита (",[51,4224,4225],{},"/lib/systemd/system/nginx.service"," vs ",[51,4228,4229],{},"/etc/systemd/system/nginx.service","). Часто правильнее скопировать свои правки в новый оригинальный файл, а не использовать старый повреждённый.",[16,4232,4234],{"id":4233},"профилактика","Профилактика",[703,4236,4237,4247,4263,4274,4290],{},[32,4238,4239,4242,4243,4246],{},[35,4240,4241],{},"Всегда проверяйте синтаксис"," конфигурационных файлов службы и самого приложения (например, ",[51,4244,4245],{},"nginx -t",") перед перезагрузкой systemd.",[32,4248,4249,4253,4254,4258,4259,902,4261,334],{},[35,4250,925,4251],{},[51,4252,999],{}," после ",[4255,4256,4257],"em",{},"любого"," изменения файла юнита в ",[51,4260,333],{},[51,4262,905],{},[32,4264,4265,3734,4268,981,4270,4273],{},[35,4266,4267],{},"Настраивайте разумные таймауты",[51,4269,3799],{},[51,4271,4272],{},"TimeoutStopSec=",") для долгих служб, чтобы избежать ложных срабатываний.",[32,4275,4276,4279,4280,981,4283,981,4286,4289],{},[35,4277,4278],{},"Следите за правами"," на каталоги, с которыми работает служба (",[51,4281,4282],{},"/var/log/",[51,4284,4285],{},"/var/lib/",[51,4287,4288],{},"/run/","). Рекомендуется создавать отдельного пользователя/группу для каждой службы.",[32,4291,4292,4295,4296,4299],{},[35,4293,4294],{},"Периодически проверяйте логи"," на предмет предупреждений (",[51,4297,4298],{},"journalctl -u \u003Cслужба>.service -p warning",") до того, как они превратятся в ошибки.",[322,4301],{},[2608,4303,4305],{"id":4304},"способ-n-откат-к-предыдущей-рабочей-конфигурации-если-используется-git","Способ N: Откат к предыдущей рабочей конфигурации (если используется Git)",[21,4307,4308],{},"Если конфигурационные файлы службы находятся под контролем версий (что хорошая практика):",[29,4310,4311,4342,4376,4428],{},[32,4312,4313,4314],{},"Определите, когда служба последний раз работала:\n",[66,4315,4317],{"className":68,"code":4316,"language":70,"meta":71,"style":71},"sudo journalctl -u nginx.service -b --no-pager | grep -i \"started\\|failed\"\n",[51,4318,4319],{"__ignoreMap":71},[75,4320,4321,4323,4325,4327,4329,4331,4333,4335,4337,4339],{"class":77,"line":78},[75,4322,41],{"class":88},[75,4324,450],{"class":114},[75,4326,471],{"class":92},[75,4328,494],{"class":114},[75,4330,3292],{"class":92},[75,4332,3535],{"class":92},[75,4334,146],{"class":145},[75,4336,598],{"class":88},[75,4338,601],{"class":92},[75,4340,4341],{"class":114}," \"started\\|failed\"\n",[32,4343,4344,4345],{},"Найдите коммит, после которого начались сбои:\n",[66,4346,4348],{"className":68,"code":4347,"language":70,"meta":71,"style":71},"cd /etc/systemd/system/\ngit log --oneline -p -- nginx.service\n",[51,4349,4350,4358],{"__ignoreMap":71},[75,4351,4352,4355],{"class":77,"line":78},[75,4353,4354],{"class":92},"cd",[75,4356,4357],{"class":114}," /etc/systemd/system/\n",[75,4359,4360,4363,4366,4369,4371,4374],{"class":77,"line":85},[75,4361,4362],{"class":88},"git",[75,4364,4365],{"class":114}," log",[75,4367,4368],{"class":92}," --oneline",[75,4370,544],{"class":92},[75,4372,4373],{"class":92}," --",[75,4375,474],{"class":114},[32,4377,4378,4379],{},"Временно верните предыдущую версию файла:\n",[66,4380,4382],{"className":68,"code":4381,"language":70,"meta":71,"style":71},"sudo git checkout \u003Cхэш_коммита> -- nginx.service\nsudo systemctl daemon-reload\nsudo systemctl restart nginx.service\n",[51,4383,4384,4410,4418],{"__ignoreMap":71},[75,4385,4386,4388,4391,4394,4397,4400,4403,4406,4408],{"class":77,"line":78},[75,4387,41],{"class":88},[75,4389,4390],{"class":114}," git",[75,4392,4393],{"class":114}," checkout",[75,4395,4396],{"class":145}," \u003C",[75,4398,4399],{"class":114},"хэш_коммит",[75,4401,4402],{"class":3026},"а",[75,4404,4405],{"class":145},">",[75,4407,4373],{"class":92},[75,4409,474],{"class":114},[75,4411,4412,4414,4416],{"class":77,"line":85},[75,4413,41],{"class":88},[75,4415,195],{"class":114},[75,4417,759],{"class":114},[75,4419,4420,4422,4424,4426],{"class":77,"line":96},[75,4421,41],{"class":88},[75,4423,195],{"class":114},[75,4425,239],{"class":114},[75,4427,474],{"class":114},[32,4429,4430],{},"Если это помогло, проанализируйте, какие именно изменения сломали службу, и внесите их более аккуратно.",[2608,4432,4434],{"id":4433},"способ-n1-запуск-службы-вручную-для-отладки","Способ N+1: Запуск службы вручную для отладки",[21,4436,4437],{},"Иногда systemd \"затыкает\" вывод ошибки. Запустите исполняемый файл напрямую от того же пользователя, под которым работает служба.",[29,4439,4440,4446],{},[32,4441,4442,4443,4445],{},"Узнайте пользователя из юнит-файла (",[51,4444,973],{},") или из лога.",[32,4447,4448,4449,4504,4505,902,4508,4511],{},"Выполните:\n",[66,4450,4452],{"className":68,"code":4451,"language":70,"meta":71,"style":71},"sudo -u \u003Cпользователь> /usr/bin/some-service --verbose\n# или, если служба запускает скрипт:\nsudo -u \u003Cпользователь> /bin/bash -x /path/to/startup-script.sh\n",[51,4453,4454,4476,4481],{"__ignoreMap":71},[75,4455,4456,4458,4460,4462,4465,4468,4470,4473],{"class":77,"line":78},[75,4457,41],{"class":88},[75,4459,471],{"class":92},[75,4461,4396],{"class":145},[75,4463,4464],{"class":114},"пользовател",[75,4466,4467],{"class":3026},"ь",[75,4469,4405],{"class":145},[75,4471,4472],{"class":114}," /usr/bin/some-service",[75,4474,4475],{"class":92}," --verbose\n",[75,4477,4478],{"class":77,"line":85},[75,4479,4480],{"class":81},"# или, если служба запускает скрипт:\n",[75,4482,4483,4485,4487,4489,4491,4493,4495,4498,4501],{"class":77,"line":96},[75,4484,41],{"class":88},[75,4486,471],{"class":92},[75,4488,4396],{"class":145},[75,4490,4464],{"class":114},[75,4492,4467],{"class":3026},[75,4494,4405],{"class":145},[75,4496,4497],{"class":114}," /bin/bash",[75,4499,4500],{"class":92}," -x",[75,4502,4503],{"class":114}," /path/to/startup-script.sh\n","\nФлаги ",[51,4506,4507],{},"--verbose",[51,4509,4510],{},"-x"," (для bash) дадут подробный вывод. Часто ошибка становится очевидной при прямом запуске.",[1037,4513,4514],{},"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":71,"searchDepth":85,"depth":85,"links":4516},[4517,4519,4520,4527],{"id":3684,"depth":85,"text":4518},"Что означает ошибка systemd-failed-to-start",{"id":3722,"depth":85,"text":3723},{"id":3803,"depth":85,"text":3804,"children":4521},[4522,4524,4525,4526],{"id":3807,"depth":96,"text":4523},"Способ 1: Анализ логов службы через journalctl",{"id":3903,"depth":96,"text":3904},{"id":4029,"depth":96,"text":4030},{"id":4137,"depth":96,"text":4138},{"id":4233,"depth":85,"text":4234,"children":4528},[4529,4530],{"id":4304,"depth":96,"text":4305},{"id":4433,"depth":96,"text":4434},"systemd-failed","2026-02-15 16:38:58","Ошибка Failed to start в systemd мешает работе сервисов. Узнайте, как быстро диагностировать проблему через journalctl и исправить её проверенными способами. Пошаговая инструкция.","15-30 минут",[4536,4539,4542,4545],{"question":4537,"answer":4538},"Что означает ошибка 'Failed to start' в выводе systemctl?","Эта ошибка означает, что systemd не смог успешно запустить указанную службу (юнит). Причина может быть в самой службе, её конфигурации, зависимостях или конфликте ресурсов.",{"question":4540,"answer":4541},"Где искать подробную информацию о причине сбоя systemd?","Используйте команду `journalctl -u \u003Cимя_службы>.service --no-pager -b`, чтобы увидеть логи конкретной службы за текущую загрузку. Ключевые слова 'Failed', 'Error', 'exit code' укажут на проблему.",{"question":4543,"answer":4544},"Может ли ошибка 'Failed to start' быть вызвана недостатком прав?","Да, часто. Если служба запускается от неправильного пользователя (например, root, а должна от nginx) или в конфиге указан недоступный путь, systemd не сможет её запустить.",{"question":4546,"answer":4547},"Как временно обойти проблему, чтобы система загрузилась?","Можно отключить problematic юнит на загрузку командой `sudo systemctl disable \u003Cслужба>.service` или запустить систему в режиме восстановления, чтобы исправить конфигурацию.",[4549,4552,4555,4558,4561,4564],{"name":4550,"text":4551},"Проверьте точное состояние службы и код ошибки","Выполните `systemctl status \u003Cслужба>.service`. В разделе 'Active:' и последних строках лога будет указан код ошибки (например, 'exit-code' или 'timeout'). Запишите его.",{"name":4553,"text":4554},"Изучите полные логи службы через journalctl","Используйте `journalctl -u \u003Cслужба>.service -b --no-pager`. Прокрутите лог до конца и найдите строки с 'Failed', 'error', 'Permission denied', 'No such file'. Это ключ к причине.",{"name":4556,"text":4557},"Проверьте конфигурационный файл юнита на синтаксис","Выполните `systemd-analyze verify /etc/systemd/system/\u003Cслужба>.service` (или путь к вашему файлу). Команда проверит синтаксис и укажет на ошибки в секциях [Service], [Install].",{"name":4559,"text":4560},"Восстановите или переустановите проблемный пакет (если применимо)","Если служба относится к пакету (например, nginx, postgresql), попробуйте `sudo apt reinstall \u003Cпакет>` (Debian/Ubuntu) или `sudo dnf reinstall \u003Cпакет>` (RHEL/Fedora). Это восстановит оригинальные файлы конфигурации.",{"name":4562,"text":4563},"Вручную исправьте найденную проблему","В зависимости от логов: исправьте путь в `ExecStart`, права на файлы (`chmod`, `chown`), разрешите конфликт портов, добавьте недостающие зависимости (`Requires=`, `After=`) в конфиг юнита.",{"name":4565,"text":4566},"Перезапустите и включите службу","После исправлений выполните `sudo systemctl daemon-reload`, затем `sudo systemctl restart \u003Cслужба>.service` и `sudo systemctl enable \u003Cслужба>.service`. Проверьте статус снова.",[4568,4569,4570,4571,4572,4573,4574,4575],"systemd failed to start","ошибка systemd юнит не запустился","failed to start служба systemd","как исправить systemd ошибка запуска","journalctl ошибка юнита","systemctl status failed","systemd dependency failed","восстановление systemd службы",{},[4578,4579,4580],"/errors/linux/systemd-unit-not-found","/errors/linux/systemd-circular-dependency","/guides/linux/systemd-service-creation","Ошибки Linux",{"title":3675,"description":4533},"high","errors/linux/systemd-failed-to-start","Статья подробно разбирает ошибку 'Failed to start' в systemd, её основные причины и 4 проверенных способа решения. Вы научитесь анализировать логи и восстанавливать работу служб.",[4587,48,89,1111,433,4588,4589],"ошибки linux","service","boot","error","eIns-0UfD2cGVn2HufRiXZrk1AiyCuiXxeXglmXIzm0"]