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