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