[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/manage-services-without-systemd":3,"mdc--7l8gge-key":1364,"mdc-h82pz3-key":1396,"mdc-6dzkzj-key":1404,"mdc--vxc2va-key":1412,"mdc--idhqml-key":1469,"mdc-y898x-key":1477,"mdc-jcm5ch-key":1506,"mdc--dlmqdw-key":1529,"mdc-5ps9pw-key":1571,"related-/guides/linux/configure-systemd-services,/errors/linux/service-failed-to-start,/guides/linux/linux-init-systems-comparison":1595},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":1299,"code":1299,"createdAt":1300,"description":1301,"difficulty":1302,"draft":1303,"estimatedTime":1304,"extension":1305,"faq":1306,"howToSteps":1319,"howToTotalTime":1335,"image":1299,"keywords":1336,"locale":1346,"meta":1347,"navigation":131,"path":1348,"platform":1349,"related":1350,"section":1354,"seo":1355,"severity":1299,"stem":1356,"summary":1357,"tags":1358,"twitterCreator":1299,"twitterSite":1299,"type":1362,"updatedAt":1300,"__hash__":1363},"content_ru/guides/linux/manage-services-without-systemd.md","Управление сервисами в Linux без systemd: полное руководство",[7,8,9,10],"Alpine Linux 3.18+","Debian 10+ (с sysvinit)","Gentoo (OpenRC)","Void Linux (runit)","FixPedia Team",{"type":13,"value":14,"toc":1283},"minimark",[15,20,41,45,77,81,84,87,193,198,230,234,252,257,365,369,378,386,449,456,555,559,568,572,666,670,684,765,768,772,775,1083,1087,1090,1206,1210,1279],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23,24,28,29,32,33,36,37,40],"p",{},"Хотя ",[25,26,27],"strong",{},"systemd"," стал де-факто стандартом для большинства дистрибутивов Linux, существуют популярные и стабильные альтернативы, такие как ",[25,30,31],{},"SysVinit",", ",[25,34,35],{},"OpenRC"," и ",[25,38,39],{},"runit",". Этот гайд поможет вам освоить управление сервисами в таких средах. Вы научитесь запускать, останавливать, добавлять в автозагрузку и создавать собственные скрипты для управления службами, что особенно актуально для Alpine Linux, Gentoo, Void Linux и специализированных сборок Debian/Ubuntu без systemd.",[16,42,44],{"id":43},"требования-подготовка","Требования / Подготовка",[46,47,48,56,64,74],"ol",{},[49,50,51,52,55],"li",{},"Доступ к терминалу Linux с правами ",[25,53,54],{},"sudo"," (или root).",[49,57,58,59,63],{},"Базовое понимание командной строки и структуры каталогов ",[60,61,62],"code",{},"/etc/",".",[49,65,66,67,32,70,73],{},"Установленный текстовый редактор (",[60,68,69],{},"nano",[60,71,72],{},"vim",").",[49,75,76],{},"Знание, какая система инициализации используется в вашем дистрибутиве (см. первый шаг).",[16,78,80],{"id":79},"шаг-1-определите-текущую-систему-инициализации","Шаг 1: Определите текущую систему инициализации",[21,82,83],{},"Перед началом необходимо понять, какая init-система управляет процессами на вашей системе. Это ключевой шаг, так как команды для SysVinit и OpenRC различаются.",[21,85,86],{},"Выполните следующие команды:",[88,89,94],"pre",{"className":90,"code":91,"language":92,"meta":93,"style":93},"language-bash shiki shiki-themes github-light github-dark","# Способ 1: Посмотреть, какой процесс имеет PID 1 (это и есть init-система)\nps -p 1 -o comm=\n\n# Способ 2: Проверить тип символьной ссылки /sbin/init\nls -l /sbin/init\n\n# Способ 3: Для OpenRC часто есть файл /etc/openrc/conf.d\n# или наличие каталога /etc/runlevels/\nls /etc/runlevels/ 2>/dev/null && echo \"Возможно, OpenRC\"\n","bash","",[60,95,96,105,126,133,139,151,156,162,168],{"__ignoreMap":93},[97,98,101],"span",{"class":99,"line":100},"line",1,[97,102,104],{"class":103},"sJ8bj","# Способ 1: Посмотреть, какой процесс имеет PID 1 (это и есть init-система)\n",[97,106,108,112,116,119,122],{"class":99,"line":107},2,[97,109,111],{"class":110},"sScJk","ps",[97,113,115],{"class":114},"sj4cs"," -p",[97,117,118],{"class":114}," 1",[97,120,121],{"class":114}," -o",[97,123,125],{"class":124},"sZZnC"," comm=\n",[97,127,129],{"class":99,"line":128},3,[97,130,132],{"emptyLinePlaceholder":131},true,"\n",[97,134,136],{"class":99,"line":135},4,[97,137,138],{"class":103},"# Способ 2: Проверить тип символьной ссылки /sbin/init\n",[97,140,142,145,148],{"class":99,"line":141},5,[97,143,144],{"class":110},"ls",[97,146,147],{"class":114}," -l",[97,149,150],{"class":124}," /sbin/init\n",[97,152,154],{"class":99,"line":153},6,[97,155,132],{"emptyLinePlaceholder":131},[97,157,159],{"class":99,"line":158},7,[97,160,161],{"class":103},"# Способ 3: Для OpenRC часто есть файл /etc/openrc/conf.d\n",[97,163,165],{"class":99,"line":164},8,[97,166,167],{"class":103},"# или наличие каталога /etc/runlevels/\n",[97,169,171,173,176,180,183,187,190],{"class":99,"line":170},9,[97,172,144],{"class":110},[97,174,175],{"class":124}," /etc/runlevels/",[97,177,179],{"class":178},"szBVR"," 2>",[97,181,182],{"class":124},"/dev/null",[97,184,186],{"class":185},"sVt8B"," && ",[97,188,189],{"class":114},"echo",[97,191,192],{"class":124}," \"Возможно, OpenRC\"\n",[21,194,195],{},[25,196,197],{},"Ожидаемые результаты:",[199,200,201,213,225],"ul",{},[49,202,203,206,207,210,211,63],{},[60,204,205],{},"init"," или ",[60,208,209],{},"sysvinit"," → используется ",[25,212,31],{},[49,214,215,206,218,210,220,206,222,224],{},[60,216,217],{},"openrc",[60,219,39],{},[25,221,35],{},[25,223,39],{}," соответственно.",[49,226,227,229],{},[60,228,27],{}," → у вас systemd, и этот гайд не применим.",[16,231,233],{"id":232},"шаг-2-управление-сервисами-в-sysvinit","Шаг 2: Управление сервисами в SysVinit",[21,235,236,237,240,241,36,244,247,248,251],{},"SysVinit — классическая система, использующая скрипты в ",[60,238,239],{},"/etc/init.d/"," и управление через команды ",[60,242,243],{},"service",[60,245,246],{},"chkconfig"," (или ",[60,249,250],{},"update-rc.d"," в Debian-семействе).",[253,254,256],"h3",{"id":255},"_21-базовые-операции-с-сервисом","2.1. Базовые операции с сервисом",[88,258,260],{"className":90,"code":259,"language":92,"meta":93,"style":93},"# Запуск сервиса (пример для nginx)\nsudo service nginx start\n\n# Остановка сервиса\nsudo service nginx stop\n\n# Перезапуск\nsudo service nginx restart\n\n# Проверка статуса (в некоторых системах)\nsudo service nginx status\n\n# Принудительная перезагрузка конфигурации (если поддерживается)\nsudo service nginx reload\n",[60,261,262,267,280,284,289,300,304,309,320,324,330,342,347,353],{"__ignoreMap":93},[97,263,264],{"class":99,"line":100},[97,265,266],{"class":103},"# Запуск сервиса (пример для nginx)\n",[97,268,269,271,274,277],{"class":99,"line":107},[97,270,54],{"class":110},[97,272,273],{"class":124}," service",[97,275,276],{"class":124}," nginx",[97,278,279],{"class":124}," start\n",[97,281,282],{"class":99,"line":128},[97,283,132],{"emptyLinePlaceholder":131},[97,285,286],{"class":99,"line":135},[97,287,288],{"class":103},"# Остановка сервиса\n",[97,290,291,293,295,297],{"class":99,"line":141},[97,292,54],{"class":110},[97,294,273],{"class":124},[97,296,276],{"class":124},[97,298,299],{"class":124}," stop\n",[97,301,302],{"class":99,"line":153},[97,303,132],{"emptyLinePlaceholder":131},[97,305,306],{"class":99,"line":158},[97,307,308],{"class":103},"# Перезапуск\n",[97,310,311,313,315,317],{"class":99,"line":164},[97,312,54],{"class":110},[97,314,273],{"class":124},[97,316,276],{"class":124},[97,318,319],{"class":124}," restart\n",[97,321,322],{"class":99,"line":170},[97,323,132],{"emptyLinePlaceholder":131},[97,325,327],{"class":99,"line":326},10,[97,328,329],{"class":103},"# Проверка статуса (в некоторых системах)\n",[97,331,333,335,337,339],{"class":99,"line":332},11,[97,334,54],{"class":110},[97,336,273],{"class":124},[97,338,276],{"class":124},[97,340,341],{"class":124}," status\n",[97,343,345],{"class":99,"line":344},12,[97,346,132],{"emptyLinePlaceholder":131},[97,348,350],{"class":99,"line":349},13,[97,351,352],{"class":103},"# Принудительная перезагрузка конфигурации (если поддерживается)\n",[97,354,356,358,360,362],{"class":99,"line":355},14,[97,357,54],{"class":110},[97,359,273],{"class":124},[97,361,276],{"class":124},[97,363,364],{"class":124}," reload\n",[253,366,368],{"id":367},"_22-управление-автозагрузкой","2.2. Управление автозагрузкой",[21,370,371,372,206,375,73],{},"В SysVinit автозагрузка управляется через символьные ссылки в каталогах runlevel (",[60,373,374],{},"/etc/rc.d/rc?.d/",[60,376,377],{},"/etc/rc?.d/",[21,379,380],{},[25,381,382,383,385],{},"Для Red Hat, CentOS, Fedora (используется ",[60,384,246],{},"):",[88,387,389],{"className":90,"code":388,"language":92,"meta":93,"style":93},"# Добавить сервис в автозагрузку для уровней 2,3,4,5\nsudo chkconfig nginx on\n\n# Удалить из автозагрузки\nsudo chkconfig nginx off\n\n# Посмотреть, в каких runlevel'ах включен сервис\nsudo chkconfig --list nginx\n",[60,390,391,396,408,412,417,428,432,437],{"__ignoreMap":93},[97,392,393],{"class":99,"line":100},[97,394,395],{"class":103},"# Добавить сервис в автозагрузку для уровней 2,3,4,5\n",[97,397,398,400,403,405],{"class":99,"line":107},[97,399,54],{"class":110},[97,401,402],{"class":124}," chkconfig",[97,404,276],{"class":124},[97,406,407],{"class":124}," on\n",[97,409,410],{"class":99,"line":128},[97,411,132],{"emptyLinePlaceholder":131},[97,413,414],{"class":99,"line":135},[97,415,416],{"class":103},"# Удалить из автозагрузки\n",[97,418,419,421,423,425],{"class":99,"line":141},[97,420,54],{"class":110},[97,422,402],{"class":124},[97,424,276],{"class":124},[97,426,427],{"class":124}," off\n",[97,429,430],{"class":99,"line":153},[97,431,132],{"emptyLinePlaceholder":131},[97,433,434],{"class":99,"line":158},[97,435,436],{"class":103},"# Посмотреть, в каких runlevel'ах включен сервис\n",[97,438,439,441,443,446],{"class":99,"line":164},[97,440,54],{"class":110},[97,442,402],{"class":124},[97,444,445],{"class":114}," --list",[97,447,448],{"class":124}," nginx\n",[21,450,451],{},[25,452,453,454,385],{},"Для Debian, Ubuntu (используется ",[60,455,250],{},[88,457,459],{"className":90,"code":458,"language":92,"meta":93,"style":93},"# Добавить в автозагрузку (по умолчанию для уровней 2,3,4,5)\nsudo update-rc.d nginx defaults\n\n# Удалить из автозагрузки\nsudo update-rc.d -f nginx remove\n\n# Явное указание runlevel'ов (например, 2,3,4,5)\nsudo update-rc.d nginx start 20 2 3 4 5 . stop 80 0 1 6 .\n",[60,460,461,466,478,482,486,500,504,509],{"__ignoreMap":93},[97,462,463],{"class":99,"line":100},[97,464,465],{"class":103},"# Добавить в автозагрузку (по умолчанию для уровней 2,3,4,5)\n",[97,467,468,470,473,475],{"class":99,"line":107},[97,469,54],{"class":110},[97,471,472],{"class":124}," update-rc.d",[97,474,276],{"class":124},[97,476,477],{"class":124}," defaults\n",[97,479,480],{"class":99,"line":128},[97,481,132],{"emptyLinePlaceholder":131},[97,483,484],{"class":99,"line":135},[97,485,416],{"class":103},[97,487,488,490,492,495,497],{"class":99,"line":141},[97,489,54],{"class":110},[97,491,472],{"class":124},[97,493,494],{"class":114}," -f",[97,496,276],{"class":124},[97,498,499],{"class":124}," remove\n",[97,501,502],{"class":99,"line":153},[97,503,132],{"emptyLinePlaceholder":131},[97,505,506],{"class":99,"line":158},[97,507,508],{"class":103},"# Явное указание runlevel'ов (например, 2,3,4,5)\n",[97,510,511,513,515,517,520,523,526,529,532,535,538,541,544,547,549,552],{"class":99,"line":164},[97,512,54],{"class":110},[97,514,472],{"class":124},[97,516,276],{"class":124},[97,518,519],{"class":124}," start",[97,521,522],{"class":114}," 20",[97,524,525],{"class":114}," 2",[97,527,528],{"class":114}," 3",[97,530,531],{"class":114}," 4",[97,533,534],{"class":114}," 5",[97,536,537],{"class":124}," .",[97,539,540],{"class":124}," stop",[97,542,543],{"class":114}," 80",[97,545,546],{"class":114}," 0",[97,548,118],{"class":114},[97,550,551],{"class":114}," 6",[97,553,554],{"class":124}," .\n",[16,556,558],{"id":557},"шаг-3-управление-сервисами-в-openrc","Шаг 3: Управление сервисами в OpenRC",[21,560,561,562,36,565,63],{},"OpenRC — зависимая от runlevel система, популярная в Alpine Linux и Gentoo. Основные команды: ",[60,563,564],{},"rc-service",[60,566,567],{},"rc-update",[253,569,571],{"id":570},"_31-базовые-операции-с-сервисом","3.1. Базовые операции с сервисом",[88,573,575],{"className":90,"code":574,"language":92,"meta":93,"style":93},"# Запуск сервиса\nsudo rc-service nginx start\n\n# Остановка\nsudo rc-service nginx stop\n\n# Перезапуск\nsudo rc-service nginx restart\n\n# Проверка статуса\nsudo rc-service nginx status\n\n# Получить список всех сервисов и их статус\nrc-status --all\n",[60,576,577,582,593,597,602,612,616,620,630,634,639,649,653,658],{"__ignoreMap":93},[97,578,579],{"class":99,"line":100},[97,580,581],{"class":103},"# Запуск сервиса\n",[97,583,584,586,589,591],{"class":99,"line":107},[97,585,54],{"class":110},[97,587,588],{"class":124}," rc-service",[97,590,276],{"class":124},[97,592,279],{"class":124},[97,594,595],{"class":99,"line":128},[97,596,132],{"emptyLinePlaceholder":131},[97,598,599],{"class":99,"line":135},[97,600,601],{"class":103},"# Остановка\n",[97,603,604,606,608,610],{"class":99,"line":141},[97,605,54],{"class":110},[97,607,588],{"class":124},[97,609,276],{"class":124},[97,611,299],{"class":124},[97,613,614],{"class":99,"line":153},[97,615,132],{"emptyLinePlaceholder":131},[97,617,618],{"class":99,"line":158},[97,619,308],{"class":103},[97,621,622,624,626,628],{"class":99,"line":164},[97,623,54],{"class":110},[97,625,588],{"class":124},[97,627,276],{"class":124},[97,629,319],{"class":124},[97,631,632],{"class":99,"line":170},[97,633,132],{"emptyLinePlaceholder":131},[97,635,636],{"class":99,"line":326},[97,637,638],{"class":103},"# Проверка статуса\n",[97,640,641,643,645,647],{"class":99,"line":332},[97,642,54],{"class":110},[97,644,588],{"class":124},[97,646,276],{"class":124},[97,648,341],{"class":124},[97,650,651],{"class":99,"line":344},[97,652,132],{"emptyLinePlaceholder":131},[97,654,655],{"class":99,"line":349},[97,656,657],{"class":103},"# Получить список всех сервисов и их статус\n",[97,659,660,663],{"class":99,"line":355},[97,661,662],{"class":110},"rc-status",[97,664,665],{"class":114}," --all\n",[253,667,669],{"id":668},"_32-управление-автозагрузкой-runlevel","3.2. Управление автозагрузкой (runlevel)",[21,671,672,673,676,677,680,681,63],{},"В OpenRC сервисы добавляются в ",[25,674,675],{},"runlevel"," (уровень загрузки), например, ",[60,678,679],{},"default"," (аналог multi-user.target) или ",[60,682,683],{},"nonetwork",[88,685,687],{"className":90,"code":686,"language":92,"meta":93,"style":93},"# Добавить сервис в runlevel 'default' (автозапуск при обычной загрузке)\nsudo rc-update add nginx default\n\n# Удалить сервис из runlevel\nsudo rc-update del nginx default\n\n# Посмотреть, какие сервисы добавлены в runlevel 'default'\nrc-update show default\n\n# Список всех доступных runlevel'ов\nrc-update -v\n",[60,688,689,694,709,713,718,731,735,740,749,753,758],{"__ignoreMap":93},[97,690,691],{"class":99,"line":100},[97,692,693],{"class":103},"# Добавить сервис в runlevel 'default' (автозапуск при обычной загрузке)\n",[97,695,696,698,701,704,706],{"class":99,"line":107},[97,697,54],{"class":110},[97,699,700],{"class":124}," rc-update",[97,702,703],{"class":124}," add",[97,705,276],{"class":124},[97,707,708],{"class":124}," default\n",[97,710,711],{"class":99,"line":128},[97,712,132],{"emptyLinePlaceholder":131},[97,714,715],{"class":99,"line":135},[97,716,717],{"class":103},"# Удалить сервис из runlevel\n",[97,719,720,722,724,727,729],{"class":99,"line":141},[97,721,54],{"class":110},[97,723,700],{"class":124},[97,725,726],{"class":124}," del",[97,728,276],{"class":124},[97,730,708],{"class":124},[97,732,733],{"class":99,"line":153},[97,734,132],{"emptyLinePlaceholder":131},[97,736,737],{"class":99,"line":158},[97,738,739],{"class":103},"# Посмотреть, какие сервисы добавлены в runlevel 'default'\n",[97,741,742,744,747],{"class":99,"line":164},[97,743,567],{"class":110},[97,745,746],{"class":124}," show",[97,748,708],{"class":124},[97,750,751],{"class":99,"line":170},[97,752,132],{"emptyLinePlaceholder":131},[97,754,755],{"class":99,"line":326},[97,756,757],{"class":103},"# Список всех доступных runlevel'ов\n",[97,759,760,762],{"class":99,"line":332},[97,761,567],{"class":110},[97,763,764],{"class":114}," -v\n",[766,767],"in-article-ad",{},[16,769,771],{"id":770},"шаг-4-создание-и-настройка-собственного-init-скрипта","Шаг 4: Создание и настройка собственного init-скрипта",[21,773,774],{},"Иногда нужно создать скрипт для собственного приложения. Пример для SysVinit (логика для OpenRC очень похожа, но есть нюансы в заголовке скрипта).",[46,776,777,798,1054,1074],{},[49,778,779,780,782,783],{},"Создайте файл скрипта в ",[60,781,239],{},":",[88,784,786],{"className":90,"code":785,"language":92,"meta":93,"style":93},"sudo nano /etc/init.d/myapp\n",[60,787,788],{"__ignoreMap":93},[97,789,790,792,795],{"class":99,"line":100},[97,791,54],{"class":110},[97,793,794],{"class":124}," nano",[97,796,797],{"class":124}," /etc/init.d/myapp\n",[49,799,800,801,1023,1026,1030,1031,1034,1035,1038,1039,1042,1043,1046,1047,1050,1051,63],{},"Добавьте следующее содержимое (адаптируйте под ваше приложение):",[88,802,804],{"className":90,"code":803,"language":92,"meta":93,"style":93},"#!/sbin/runscript\n# Copyright (c) 2026 FixPedia Team\n# Имя сервиса\ndescription=\"Мой кастомный сервис\"\n# Команда запуска (путь к бинарнику или скрипту)\ncommand=\"/usr/local/bin/myapp\"\n# Опции команды\ncommand_args=\"--config /etc/myapp/config.conf\"\n# Пользователь, от которого запускать (опционально)\n# user=\"myuser\"\n# PID-файл (если приложение пишет свой PID)\n# pidfile=\"/run/myapp.pid\"\n\ndepend() {\n    # Указать зависимости, например, от сети или каталога\n    # need net\n    # use dns\n}\n\nstart() {\n    ebegin \"Запуск MyApp\"\n        start-stop-daemon --start --exec $command -- $command_args\n    eend $?\n}\n\nstop() {\n    ebegin \"Остановка MyApp\"\n        start-stop-daemon --stop --exec $command --retry=TERM/30/KILL/5\n    eend $?\n}\n",[60,805,806,811,816,821,832,837,847,852,862,867,872,877,882,886,894,900,906,912,918,923,931,940,961,970,975,980,988,996,1011,1018],{"__ignoreMap":93},[97,807,808],{"class":99,"line":100},[97,809,810],{"class":103},"#!/sbin/runscript\n",[97,812,813],{"class":99,"line":107},[97,814,815],{"class":103},"# Copyright (c) 2026 FixPedia Team\n",[97,817,818],{"class":99,"line":128},[97,819,820],{"class":103},"# Имя сервиса\n",[97,822,823,826,829],{"class":99,"line":135},[97,824,825],{"class":185},"description",[97,827,828],{"class":178},"=",[97,830,831],{"class":124},"\"Мой кастомный сервис\"\n",[97,833,834],{"class":99,"line":141},[97,835,836],{"class":103},"# Команда запуска (путь к бинарнику или скрипту)\n",[97,838,839,842,844],{"class":99,"line":153},[97,840,841],{"class":185},"command",[97,843,828],{"class":178},[97,845,846],{"class":124},"\"/usr/local/bin/myapp\"\n",[97,848,849],{"class":99,"line":158},[97,850,851],{"class":103},"# Опции команды\n",[97,853,854,857,859],{"class":99,"line":164},[97,855,856],{"class":185},"command_args",[97,858,828],{"class":178},[97,860,861],{"class":124},"\"--config /etc/myapp/config.conf\"\n",[97,863,864],{"class":99,"line":170},[97,865,866],{"class":103},"# Пользователь, от которого запускать (опционально)\n",[97,868,869],{"class":99,"line":326},[97,870,871],{"class":103},"# user=\"myuser\"\n",[97,873,874],{"class":99,"line":332},[97,875,876],{"class":103},"# PID-файл (если приложение пишет свой PID)\n",[97,878,879],{"class":99,"line":344},[97,880,881],{"class":103},"# pidfile=\"/run/myapp.pid\"\n",[97,883,884],{"class":99,"line":349},[97,885,132],{"emptyLinePlaceholder":131},[97,887,888,891],{"class":99,"line":355},[97,889,890],{"class":110},"depend",[97,892,893],{"class":185},"() {\n",[97,895,897],{"class":99,"line":896},15,[97,898,899],{"class":103},"    # Указать зависимости, например, от сети или каталога\n",[97,901,903],{"class":99,"line":902},16,[97,904,905],{"class":103},"    # need net\n",[97,907,909],{"class":99,"line":908},17,[97,910,911],{"class":103},"    # use dns\n",[97,913,915],{"class":99,"line":914},18,[97,916,917],{"class":185},"}\n",[97,919,921],{"class":99,"line":920},19,[97,922,132],{"emptyLinePlaceholder":131},[97,924,926,929],{"class":99,"line":925},20,[97,927,928],{"class":110},"start",[97,930,893],{"class":185},[97,932,934,937],{"class":99,"line":933},21,[97,935,936],{"class":110},"    ebegin",[97,938,939],{"class":124}," \"Запуск MyApp\"\n",[97,941,943,946,949,952,955,958],{"class":99,"line":942},22,[97,944,945],{"class":110},"        start-stop-daemon",[97,947,948],{"class":114}," --start",[97,950,951],{"class":114}," --exec",[97,953,954],{"class":185}," $command ",[97,956,957],{"class":114},"--",[97,959,960],{"class":185}," $command_args\n",[97,962,964,967],{"class":99,"line":963},23,[97,965,966],{"class":110},"    eend",[97,968,969],{"class":114}," $?\n",[97,971,973],{"class":99,"line":972},24,[97,974,917],{"class":185},[97,976,978],{"class":99,"line":977},25,[97,979,132],{"emptyLinePlaceholder":131},[97,981,983,986],{"class":99,"line":982},26,[97,984,985],{"class":110},"stop",[97,987,893],{"class":185},[97,989,991,993],{"class":99,"line":990},27,[97,992,936],{"class":110},[97,994,995],{"class":124}," \"Остановка MyApp\"\n",[97,997,999,1001,1004,1006,1008],{"class":99,"line":998},28,[97,1000,945],{"class":110},[97,1002,1003],{"class":114}," --stop",[97,1005,951],{"class":114},[97,1007,954],{"class":185},[97,1009,1010],{"class":114},"--retry=TERM/30/KILL/5\n",[97,1012,1014,1016],{"class":99,"line":1013},29,[97,1015,966],{"class":110},[97,1017,969],{"class":114},[97,1019,1021],{"class":99,"line":1020},30,[97,1022,917],{"class":185},[1024,1025],"br",{},[1027,1028,1029],"em",{},"Для OpenRC"," скрипт начинается с ",[60,1032,1033],{},"#!/sbin/runscript",", но функции ",[60,1036,1037],{},"start()","/",[60,1040,1041],{},"stop()"," пишутся без ",[60,1044,1045],{},"start-stop-daemon",", а с прямым вызовом ",[60,1048,1049],{},"$command",". Детали смотрите в ",[60,1052,1053],{},"man openrc-run",[49,1055,1056,1057],{},"Сделайте скрипт исполняемым:",[88,1058,1060],{"className":90,"code":1059,"language":92,"meta":93,"style":93},"sudo chmod +x /etc/init.d/myapp\n",[60,1061,1062],{"__ignoreMap":93},[97,1063,1064,1066,1069,1072],{"class":99,"line":100},[97,1065,54],{"class":110},[97,1067,1068],{"class":124}," chmod",[97,1070,1071],{"class":124}," +x",[97,1073,797],{"class":124},[49,1075,1076,1079,1080,1082],{},[25,1077,1078],{},"Для SysVinit",": добавьте в автозагрузку (см. Шаг 2.2).\n",[25,1081,1029],{},": добавьте в runlevel (см. Шаг 3.2).",[16,1084,1086],{"id":1085},"шаг-5-проверка-статуса-и-логов","Шаг 5: Проверка статуса и логов",[21,1088,1089],{},"После настройки сервиса важно убедиться, что он работает корректно.",[88,1091,1093],{"className":90,"code":1092,"language":92,"meta":93,"style":93},"# Для SysVinit\nsudo service myapp status\n# Или проверьте процесс\nps aux | grep myapp\n\n# Для OpenRC\nsudo rc-service myapp status\nrc-status\n\n# Просмотр логов (зависит от конфигурации syslog)\nsudo tail -f /var/log/syslog\n# Или /var/log/messages, /var/log/daemon.log\n\n# Если используется systemd-journald как логгер (возможно в гибридных системах)\nsudo journalctl -u myapp -f\n",[60,1094,1095,1100,1111,1116,1132,1136,1141,1151,1156,1160,1165,1177,1182,1186,1191],{"__ignoreMap":93},[97,1096,1097],{"class":99,"line":100},[97,1098,1099],{"class":103},"# Для SysVinit\n",[97,1101,1102,1104,1106,1109],{"class":99,"line":107},[97,1103,54],{"class":110},[97,1105,273],{"class":124},[97,1107,1108],{"class":124}," myapp",[97,1110,341],{"class":124},[97,1112,1113],{"class":99,"line":128},[97,1114,1115],{"class":103},"# Или проверьте процесс\n",[97,1117,1118,1120,1123,1126,1129],{"class":99,"line":135},[97,1119,111],{"class":110},[97,1121,1122],{"class":124}," aux",[97,1124,1125],{"class":178}," |",[97,1127,1128],{"class":110}," grep",[97,1130,1131],{"class":124}," myapp\n",[97,1133,1134],{"class":99,"line":141},[97,1135,132],{"emptyLinePlaceholder":131},[97,1137,1138],{"class":99,"line":153},[97,1139,1140],{"class":103},"# Для OpenRC\n",[97,1142,1143,1145,1147,1149],{"class":99,"line":158},[97,1144,54],{"class":110},[97,1146,588],{"class":124},[97,1148,1108],{"class":124},[97,1150,341],{"class":124},[97,1152,1153],{"class":99,"line":164},[97,1154,1155],{"class":110},"rc-status\n",[97,1157,1158],{"class":99,"line":170},[97,1159,132],{"emptyLinePlaceholder":131},[97,1161,1162],{"class":99,"line":326},[97,1163,1164],{"class":103},"# Просмотр логов (зависит от конфигурации syslog)\n",[97,1166,1167,1169,1172,1174],{"class":99,"line":332},[97,1168,54],{"class":110},[97,1170,1171],{"class":124}," tail",[97,1173,494],{"class":114},[97,1175,1176],{"class":124}," /var/log/syslog\n",[97,1178,1179],{"class":99,"line":344},[97,1180,1181],{"class":103},"# Или /var/log/messages, /var/log/daemon.log\n",[97,1183,1184],{"class":99,"line":349},[97,1185,132],{"emptyLinePlaceholder":131},[97,1187,1188],{"class":99,"line":355},[97,1189,1190],{"class":103},"# Если используется systemd-journald как логгер (возможно в гибридных системах)\n",[97,1192,1193,1195,1198,1201,1203],{"class":99,"line":896},[97,1194,54],{"class":110},[97,1196,1197],{"class":124}," journalctl",[97,1199,1200],{"class":114}," -u",[97,1202,1108],{"class":124},[97,1204,1205],{"class":114}," -f\n",[16,1207,1209],{"id":1208},"возможные-проблемы","Возможные проблемы",[199,1211,1212,1225,1237,1250,1264],{},[49,1213,1214,1217,1218,1220,1221,1224],{},[25,1215,1216],{},"Ошибка \"permission denied\" при запуске скрипта:"," Убедитесь, что скрипт в ",[60,1219,239],{}," имеет права на исполнение (",[60,1222,1223],{},"chmod +x","). Проверьте права на исполняемый файл сервиса.",[49,1226,1227,1230,1231,1233,1234,73],{},[25,1228,1229],{},"Сервис не добавляется в автозагрузку:"," В SysVinit проверьте наличие символьных ссылок в ",[60,1232,377],{},". В OpenRC убедитесь, что сервис добавлен в нужный runlevel (",[60,1235,1236],{},"rc-update show",[49,1238,1239,1242,1243,1246,1247,73],{},[25,1240,1241],{},"Сервис запускается, но сразу падает:"," Проверьте логи (см. Шаг 5). Частые причины: неправильный путь к бинарнику, отсутствие конфигурационного файла, недостаток прав (попробуйте ",[60,1244,1245],{},"user="," в скрипте OpenRC или ",[60,1248,1249],{},"start-stop-daemon --chuid",[49,1251,1252,1255,1256,1259,1260,1263],{},[25,1253,1254],{},"Зависимости сервиса:"," Если ваш сервис требует сеть или базу данных, обязательно укажите зависимости в скрипте (",[60,1257,1258],{},"depend()"," в OpenRC или комментарии ",[60,1261,1262],{},"# Required-Start:"," в SysVinit). Это предотвратит гонки при запуске.",[49,1265,1266,1271,1272,1274,1275,1278],{},[25,1267,1268,1269,782],{},"Сервис не реагирует на ",[60,1270,985],{}," Возможно, скрипт ",[60,1273,985],{}," некорректно обрабатывает сигналы. Используйте ",[60,1276,1277],{},"start-stop-daemon --stop --retry=TERM/30/KILL/5"," для корректного завершения.",[1280,1281,1282],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":93,"searchDepth":107,"depth":107,"links":1284},[1285,1286,1287,1288,1292,1296,1297,1298],{"id":18,"depth":107,"text":19},{"id":43,"depth":107,"text":44},{"id":79,"depth":107,"text":80},{"id":232,"depth":107,"text":233,"children":1289},[1290,1291],{"id":255,"depth":128,"text":256},{"id":367,"depth":128,"text":368},{"id":557,"depth":107,"text":558,"children":1293},[1294,1295],{"id":570,"depth":128,"text":571},{"id":668,"depth":128,"text":669},{"id":770,"depth":107,"text":771},{"id":1085,"depth":107,"text":1086},{"id":1208,"depth":107,"text":1209},null,"2026-02-16 18:55:28","Узнайте, как управлять службами в Linux без systemd. Пошаговая инструкция по SysVinit и OpenRC. Управляйте сервисами в Alpine, Debian и других дистрибутивах за 5-10 минут.","medium",false,"15-30 мин","md",[1307,1310,1313,1316],{"question":1308,"answer":1309},"В чём основное отличие SysVinit от systemd?","SysVinit использует последовательный запуск скриптов и простые команды `service`/`chkconfig`, тогда как systemd обеспечивает параллельный запуск, сложные зависимости и единую точку управления через `systemctl`.",{"question":1311,"answer":1312},"Какой дистрибутив Linux по умолчанию не использует systemd?","К крупным дистрибутивам без systemd относятся Alpine Linux (OpenRC), Void Linux (runit) и Gentoo (OpenRC по умолчанию). Некоторые версии Devuan и antiX также используют SysVinit.",{"question":1314,"answer":1315},"Безопасно ли управлять критическими сервисами через скрипты вручную?","Да, но только если вы точно понимаете, что делаете. Ручное управление подходит для диагностики и разовых операций. Для постоянного использования всегда настраивайте сервис через систему инициализации, чтобы обеспечить корректный запуск при загрузке и обработку сигналов.",{"question":1317,"answer":1318},"Можно ли использовать `systemctl` в дистрибутиве без systemd?","Нет, команда `systemctl` является частью systemd. В дистрибутивах без systemd используются другие утилиты: `service`/`chkconfig` для SysVinit, `rc-service`/`rc-update` для OpenRC или `sv`/`sv status` для runit.",[1320,1323,1326,1329,1332],{"name":1321,"text":1322},"Определите текущую систему инициализации","Выполните команды, чтобы понять, какую init-систему использует ваш дистрибутив, и выберите соответствующий инструмент управления.",{"name":1324,"text":1325},"Управление сервисами в SysVinit","Используйте утилиты `service` для управления состоянием и `chkconfig`/`update-rc.d` для управления автозагрузкой.",{"name":1327,"text":1328},"Управление сервисами в OpenRC","Примените команды `rc-service` для управления сервисом и `rc-update` для добавления в runlevel (уровень загрузки).",{"name":1330,"text":1331},"Создание и настройка собственного init-скрипта","Напишите простой POSIX-совместимый скрипт в `/etc/init.d/` (SysVinit) или `/etc/init.d/` (OpenRC) с требуемыми функциями `start`, `stop`, `restart`.",{"name":1333,"text":1334},"Проверка статуса и логов","Убедитесь, что сервис работает, и изучите логи через `tail -f /var/log/` или `journalctl` (если используется systemd-journald в качестве логгера).","PT30M",[1337,1338,1339,1340,1341,1342,1343,1344,567,1345],"управление сервисами без systemd","sysvinit команды","openrc service","инициализация linux альтернативы","запуск служб в alpine linux","как добавить сервис в автозагрузку без systemd","init скрипты linux","service команда linux","chkconfig linux","ru_RU",{},"/guides/linux/manage-services-without-systemd","linux",[1351,1352,1353],"/guides/linux/configure-systemd-services","/errors/linux/service-failed-to-start","/guides/linux/linux-init-systems-comparison","Гайды Linux",{"title":5,"description":1301},"guides/linux/manage-services-without-systemd","Этот гайд подробно объясняет, как управлять системными сервисами в дистрибутивах Linux, которые используют альтернативные системы инициализации вместо systemd, такие как SysVinit и OpenRC.",[1359,1360,209,217,39,1361],"системы инициализации","сервисы linux","admin","guide","fmu7BrNolM50wqQ1hbg-9f97H_L4qeY5RMQbM7WP5-U",{"data":1365,"body":1366},{},{"type":1367,"children":1368},"root",[1369],{"type":1370,"tag":21,"props":1371,"children":1372},"element",{},[1373,1376,1381,1382,1387,1389,1395],{"type":1374,"value":1375},"text","SysVinit использует последовательный запуск скриптов и простые команды ",{"type":1370,"tag":60,"props":1377,"children":1379},{"className":1378},[],[1380],{"type":1374,"value":243},{"type":1374,"value":1038},{"type":1370,"tag":60,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":1374,"value":246},{"type":1374,"value":1388},", тогда как systemd обеспечивает параллельный запуск, сложные зависимости и единую точку управления через ",{"type":1370,"tag":60,"props":1390,"children":1392},{"className":1391},[],[1393],{"type":1374,"value":1394},"systemctl",{"type":1374,"value":63},{"data":1397,"body":1398},{},{"type":1367,"children":1399},[1400],{"type":1370,"tag":21,"props":1401,"children":1402},{},[1403],{"type":1374,"value":1312},{"data":1405,"body":1406},{},{"type":1367,"children":1407},[1408],{"type":1370,"tag":21,"props":1409,"children":1410},{},[1411],{"type":1374,"value":1315},{"data":1413,"body":1414},{},{"type":1367,"children":1415},[1416],{"type":1370,"tag":21,"props":1417,"children":1418},{},[1419,1421,1426,1428,1433,1434,1439,1441,1446,1447,1452,1454,1460,1461,1467],{"type":1374,"value":1420},"Нет, команда ",{"type":1370,"tag":60,"props":1422,"children":1424},{"className":1423},[],[1425],{"type":1374,"value":1394},{"type":1374,"value":1427}," является частью systemd. В дистрибутивах без systemd используются другие утилиты: ",{"type":1370,"tag":60,"props":1429,"children":1431},{"className":1430},[],[1432],{"type":1374,"value":243},{"type":1374,"value":1038},{"type":1370,"tag":60,"props":1435,"children":1437},{"className":1436},[],[1438],{"type":1374,"value":246},{"type":1374,"value":1440}," для SysVinit, ",{"type":1370,"tag":60,"props":1442,"children":1444},{"className":1443},[],[1445],{"type":1374,"value":564},{"type":1374,"value":1038},{"type":1370,"tag":60,"props":1448,"children":1450},{"className":1449},[],[1451],{"type":1374,"value":567},{"type":1374,"value":1453}," для OpenRC или ",{"type":1370,"tag":60,"props":1455,"children":1457},{"className":1456},[],[1458],{"type":1374,"value":1459},"sv",{"type":1374,"value":1038},{"type":1370,"tag":60,"props":1462,"children":1464},{"className":1463},[],[1465],{"type":1374,"value":1466},"sv status",{"type":1374,"value":1468}," для runit.",{"data":1470,"body":1471},{},{"type":1367,"children":1472},[1473],{"type":1370,"tag":21,"props":1474,"children":1475},{},[1476],{"type":1374,"value":1322},{"data":1478,"body":1479},{},{"type":1367,"children":1480},[1481],{"type":1370,"tag":21,"props":1482,"children":1483},{},[1484,1486,1491,1493,1498,1499,1504],{"type":1374,"value":1485},"Используйте утилиты ",{"type":1370,"tag":60,"props":1487,"children":1489},{"className":1488},[],[1490],{"type":1374,"value":243},{"type":1374,"value":1492}," для управления состоянием и ",{"type":1370,"tag":60,"props":1494,"children":1496},{"className":1495},[],[1497],{"type":1374,"value":246},{"type":1374,"value":1038},{"type":1370,"tag":60,"props":1500,"children":1502},{"className":1501},[],[1503],{"type":1374,"value":250},{"type":1374,"value":1505}," для управления автозагрузкой.",{"data":1507,"body":1508},{},{"type":1367,"children":1509},[1510],{"type":1370,"tag":21,"props":1511,"children":1512},{},[1513,1515,1520,1522,1527],{"type":1374,"value":1514},"Примените команды ",{"type":1370,"tag":60,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":1374,"value":564},{"type":1374,"value":1521}," для управления сервисом и ",{"type":1370,"tag":60,"props":1523,"children":1525},{"className":1524},[],[1526],{"type":1374,"value":567},{"type":1374,"value":1528}," для добавления в runlevel (уровень загрузки).",{"data":1530,"body":1531},{},{"type":1367,"children":1532},[1533],{"type":1370,"tag":21,"props":1534,"children":1535},{},[1536,1538,1543,1545,1550,1552,1557,1558,1563,1564,1570],{"type":1374,"value":1537},"Напишите простой POSIX-совместимый скрипт в ",{"type":1370,"tag":60,"props":1539,"children":1541},{"className":1540},[],[1542],{"type":1374,"value":239},{"type":1374,"value":1544}," (SysVinit) или ",{"type":1370,"tag":60,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":1374,"value":239},{"type":1374,"value":1551}," (OpenRC) с требуемыми функциями ",{"type":1370,"tag":60,"props":1553,"children":1555},{"className":1554},[],[1556],{"type":1374,"value":928},{"type":1374,"value":32},{"type":1370,"tag":60,"props":1559,"children":1561},{"className":1560},[],[1562],{"type":1374,"value":985},{"type":1374,"value":32},{"type":1370,"tag":60,"props":1565,"children":1567},{"className":1566},[],[1568],{"type":1374,"value":1569},"restart",{"type":1374,"value":63},{"data":1572,"body":1573},{},{"type":1367,"children":1574},[1575],{"type":1370,"tag":21,"props":1576,"children":1577},{},[1578,1580,1586,1587,1593],{"type":1374,"value":1579},"Убедитесь, что сервис работает, и изучите логи через ",{"type":1370,"tag":60,"props":1581,"children":1583},{"className":1582},[],[1584],{"type":1374,"value":1585},"tail -f /var/log/",{"type":1374,"value":206},{"type":1370,"tag":60,"props":1588,"children":1590},{"className":1589},[],[1591],{"type":1374,"value":1592},"journalctl",{"type":1374,"value":1594}," (если используется systemd-journald в качестве логгера).",[1596,2401],{"id":1597,"title":1598,"appliesTo":1599,"author":11,"body":1604,"canonical":1299,"code":2342,"createdAt":2343,"description":2344,"difficulty":1302,"draft":1303,"estimatedTime":2345,"extension":1305,"faq":2346,"howToSteps":2359,"howToTotalTime":2375,"image":1299,"keywords":2376,"locale":1346,"meta":2387,"navigation":131,"path":1352,"platform":1349,"related":2388,"section":2392,"seo":2393,"severity":1302,"stem":2394,"summary":2395,"tags":2396,"twitterCreator":1299,"twitterSite":1299,"type":2399,"updatedAt":2343,"__hash__":2400},"content_ru/errors/linux/service-failed-to-start.md","Ошибка запуска службы в Linux: диагностика и способы исправления",[1600,1601,1602,1603],"Ubuntu 20.04+","Debian 10+","CentOS 8+","Fedora 35+",{"type":13,"value":1605,"toc":2329},[1606,1610,1631,1736,1751,1755,1758,1830,1834,1838,1844,1894,1899,1926,1930,1935,1997,1999,2003,2008,2063,2067,2072,2136,2140,2149,2191,2195,2200,2264,2268,2326],[16,1607,1609],{"id":1608},"что-означает-ошибка-service-failed-to-start","Что означает ошибка service failed to start",[21,1611,1612,1613,1616,1617,1619,1620,1623,1624,206,1627,1630],{},"Ошибка ",[25,1614,1615],{},"service failed to start"," в Linux (чаще всего в системах на базе ",[25,1618,27],{},") означает, что менеджер служб не смог успешно запустить фоновый процесс (демон). Это состояние отображается в выводе команды ",[60,1621,1622],{},"systemctl status"," как ",[60,1625,1626],{},"active (failed)",[60,1628,1629],{},"inactive (dead)",". Типичный вывод:",[88,1632,1634],{"className":90,"code":1633,"language":92,"meta":93,"style":93},"● ssh.service - OpenBSD Secure Shell server\n   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)\n   Active: failed (Result: exit-code) since Thu 2026-02-17 10:30:00 MSK; 1min 30s ago\n  Process: 1234 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=1/FAILURE)\n",[60,1635,1636,1659,1688,1714],{"__ignoreMap":93},[97,1637,1638,1641,1644,1647,1650,1653,1656],{"class":99,"line":100},[97,1639,1640],{"class":110},"●",[97,1642,1643],{"class":124}," ssh.service",[97,1645,1646],{"class":124}," -",[97,1648,1649],{"class":124}," OpenBSD",[97,1651,1652],{"class":124}," Secure",[97,1654,1655],{"class":124}," Shell",[97,1657,1658],{"class":124}," server\n",[97,1660,1661,1664,1667,1670,1673,1676,1679,1682,1685],{"class":99,"line":107},[97,1662,1663],{"class":110},"   Loaded:",[97,1665,1666],{"class":124}," loaded",[97,1668,1669],{"class":185}," (/lib/systemd/system/ssh.service; ",[97,1671,1672],{"class":110},"enabled",[97,1674,1675],{"class":185},"; ",[97,1677,1678],{"class":110},"vendor",[97,1680,1681],{"class":124}," preset:",[97,1683,1684],{"class":124}," enabled",[97,1686,1687],{"class":185},")\n",[97,1689,1690,1693,1696,1699,1702,1705,1708,1711],{"class":99,"line":128},[97,1691,1692],{"class":110},"   Active:",[97,1694,1695],{"class":124}," failed",[97,1697,1698],{"class":185}," (Result: ",[97,1700,1701],{"class":124},"exit-code",[97,1703,1704],{"class":185},") since Thu 2026-02-17 10:30:00 MSK; ",[97,1706,1707],{"class":110},"1min",[97,1709,1710],{"class":124}," 30s",[97,1712,1713],{"class":124}," ago\n",[97,1715,1716,1719,1722,1725,1728,1731,1734],{"class":99,"line":135},[97,1717,1718],{"class":110},"  Process:",[97,1720,1721],{"class":114}," 1234",[97,1723,1724],{"class":124}," ExecStartPre=/usr/sbin/sshd",[97,1726,1727],{"class":114}," -t",[97,1729,1730],{"class":185}," (code=exited, ",[97,1732,1733],{"class":124},"status=1/FAILURE",[97,1735,1687],{"class":185},[21,1737,1738,1739,1742,1743,1746,1747,1750],{},"В данном примере служба ",[60,1740,1741],{},"ssh"," завершилась с кодом ошибки ",[60,1744,1745],{},"1/FAILURE"," на этапе ",[60,1748,1749],{},"ExecStartPre"," (предварительный скрипт). Конкретная причина всегда указывается в логах, которые необходимо изучать.",[16,1752,1754],{"id":1753},"причины-возникновения","Причины возникновения",[21,1756,1757],{},"Ошибка запуска службы может быть вызвана следующими распространёнными причинами:",[46,1759,1760,1770,1782,1799,1805,1818,1824],{},[49,1761,1762,1765,1766,1769],{},[25,1763,1764],{},"Синтаксическая ошибка в конфигурационном файле службы"," (",[60,1767,1768],{},".service","). Неправильные параметры, отсутствие разделов, опечатки.",[49,1771,1772,1775,1776,206,1779,1781],{},[25,1773,1774],{},"Отсутствие или недоступность исполняемого файла/скрипта",", указанного в ",[60,1777,1778],{},"ExecStart",[60,1780,1749],{},". Файл может быть удалён, перемещён или иметь неверные права.",[49,1783,1784,1787,1788,32,1791,1794,1795,1798],{},[25,1785,1786],{},"Недостаточно прав"," для запуска. Служба может требовать привилегий (",[60,1789,1790],{},"RootDirectory=",[60,1792,1793],{},"CapabilityBoundingSet=","), или пользователь, от которого она запускается (",[60,1796,1797],{},"User=","), не существует/не имеет доступа.",[49,1800,1801,1804],{},[25,1802,1803],{},"Конфликт ресурсов",". Служба пытается занять уже используемый сетевой порт, файл, сокет или другой системный ресурс.",[49,1806,1807,1810,1811,206,1814,1817],{},[25,1808,1809],{},"Невыполненные зависимости",". Указанные в ",[60,1812,1813],{},"Requires=",[60,1815,1816],{},"After="," службы не запущены или завершились с ошибкой.",[49,1819,1820,1823],{},[25,1821,1822],{},"Ошибка в самом приложении",". Программа, которую запускает служба, падает сразу после старта из-за неправильных параметров, повреждённых конфигов, отсутствия библиотек.",[49,1825,1826,1829],{},[25,1827,1828],{},"Проблемы с сессией или окружением",". Служба запускается в чистом окружении systemd, отсутствуют переменные, которые есть в пользовательской сессии.",[16,1831,1833],{"id":1832},"способы-решения","Способы решения",[253,1835,1837],{"id":1836},"способ-1-анализ-логов-через-journalctl","Способ 1: Анализ логов через journalctl",[21,1839,1840,1843],{},[25,1841,1842],{},"Получите детальные логи службы",", которые покажут точную причину сбоя.",[46,1845,1846,1855,1875],{},[49,1847,1848,1849,32,1852,73],{},"Найдите имя службы (например, ",[60,1850,1851],{},"nginx",[60,1853,1854],{},"postgresql",[49,1856,1857,1858],{},"Выполните команду для просмотра логов с момента последней загрузки:\n",[88,1859,1861],{"className":90,"code":1860,"language":92,"meta":93,"style":93},"journalctl -u имя_службы -b\n",[60,1862,1863],{"__ignoreMap":93},[97,1864,1865,1867,1869,1872],{"class":99,"line":100},[97,1866,1592],{"class":110},[97,1868,1200],{"class":114},[97,1870,1871],{"class":124}," имя_службы",[97,1873,1874],{"class":114}," -b\n",[49,1876,1877,1878,32,1881,32,1884,32,1887,32,1890,1893],{},"Ищите строки с ",[60,1879,1880],{},"Failed",[60,1882,1883],{},"Error",[60,1885,1886],{},"permission denied",[60,1888,1889],{},"No such file or directory",[60,1891,1892],{},"Address already in use",". Часто последние 10-20 строк лога содержат ключевую информацию.",[21,1895,1896],{},[25,1897,1898],{},"Пример вывода для failing-службы:",[88,1900,1904],{"className":1901,"code":1902,"language":1903,"meta":93,"style":93},"language-log shiki shiki-themes github-light github-dark","Feb 17 10:30:01 host systemd[1]: Starting My App Service...\nFeb 17 10:30:01 host myapp[1234]: Error: Cannot open config file /etc/myapp/config.yaml: No such file or directory\nFeb 17 10:30:01 host systemd[1]: myapp.service: Main process exited, code=exited, status=1/FAILURE\nFeb 17 10:30:01 host systemd[1]: myapp.service: Failed with result 'exit-code'.\n","log",[60,1905,1906,1911,1916,1921],{"__ignoreMap":93},[97,1907,1908],{"class":99,"line":100},[97,1909,1910],{},"Feb 17 10:30:01 host systemd[1]: Starting My App Service...\n",[97,1912,1913],{"class":99,"line":107},[97,1914,1915],{},"Feb 17 10:30:01 host myapp[1234]: Error: Cannot open config file /etc/myapp/config.yaml: No such file or directory\n",[97,1917,1918],{"class":99,"line":128},[97,1919,1920],{},"Feb 17 10:30:01 host systemd[1]: myapp.service: Main process exited, code=exited, status=1/FAILURE\n",[97,1922,1923],{"class":99,"line":135},[97,1924,1925],{},"Feb 17 10:30:01 host systemd[1]: myapp.service: Failed with result 'exit-code'.\n",[253,1927,1929],{"id":1928},"способ-2-проверка-и-валидация-конфигурационного-файла","Способ 2: Проверка и валидация конфигурационного файла",[21,1931,1932],{},[25,1933,1934],{},"Убедитесь, что конфиг службы синтаксически корректен и пути верны.",[46,1936,1937,1955,1971],{},[49,1938,1939,1940],{},"Просмотрите текущую конфигурацию:\n",[88,1941,1943],{"className":90,"code":1942,"language":92,"meta":93,"style":93},"systemctl cat имя_службы\n",[60,1944,1945],{"__ignoreMap":93},[97,1946,1947,1949,1952],{"class":99,"line":100},[97,1948,1394],{"class":110},[97,1950,1951],{"class":124}," cat",[97,1953,1954],{"class":124}," имя_службы\n",[49,1956,1957,1958,1970],{},"Проверьте синтаксис файла (если вы его редактировали). Для systemd нет встроенного валидатора, но можно проверить, загружается ли он:\n",[88,1959,1961],{"className":90,"code":1960,"language":92,"meta":93,"style":93},"systemctl daemon-reload\n",[60,1962,1963],{"__ignoreMap":93},[97,1964,1965,1967],{"class":99,"line":100},[97,1966,1394],{"class":110},[97,1968,1969],{"class":124}," daemon-reload\n","\nЕсли команда завершится без ошибок, синтаксис, скорее всего, верен.",[49,1972,1973,1976,1977],{},[25,1974,1975],{},"Внимательно проверьте пути"," в директивах:\n",[199,1978,1979,1985,1991],{},[49,1980,1981,1984],{},[60,1982,1983],{},"ExecStart="," — абсолютный путь к исполняемому файлу или скрипту.",[49,1986,1987,1990],{},[60,1988,1989],{},"WorkingDirectory="," — рабочая директория (должна существовать).",[49,1992,1993,1996],{},[60,1994,1995],{},"ConfigFile="," или аналогичные параметры вашего приложения — указывают ли они на существующие файлы?",[766,1998],{},[253,2000,2002],{"id":2001},"способ-3-проверка-существования-и-прав-на-исполняемый-файл","Способ 3: Проверка существования и прав на исполняемый файл",[21,2004,2005],{},[25,2006,2007],{},"Удостоверьтесь, что бинарник/скрипт, который должна запустить служба, существует и доступен.",[46,2009,2010,2016,2034],{},[49,2011,2012,2013,2015],{},"Найдите путь из ",[60,2014,1778],{}," в конфиге.",[49,2017,2018,2019],{},"Проверьте существование файла:\n",[88,2020,2022],{"className":90,"code":2021,"language":92,"meta":93,"style":93},"ls -la /полный/путь/к/исполняемому_файлу\n",[60,2023,2024],{"__ignoreMap":93},[97,2025,2026,2028,2031],{"class":99,"line":100},[97,2027,144],{"class":110},[97,2029,2030],{"class":114}," -la",[97,2032,2033],{"class":124}," /полный/путь/к/исполняемому_файлу\n",[49,2035,2036,2037],{},"Проверьте права:\n",[199,2038,2039,2048,2057],{},[49,2040,2041,2042,2045,2046,73],{},"Файл должен иметь биты выполнения (",[60,2043,2044],{},"x",") для пользователя/группы, от которой запускается служба (по умолчанию — ",[60,2047,1367],{},[49,2049,2050,2051,206,2054,63],{},"Пример правильных прав: ",[60,2052,2053],{},"-rwxr-xr-x",[60,2055,2056],{},"-rwx--x--x",[49,2058,2059,2060,2062],{},"Если служба запускается от отдельного пользователя (директива ",[60,2061,1797],{},"), убедитесь, что у этого пользователя есть права на выполнение файла.",[253,2064,2066],{"id":2065},"способ-4-диагностика-зависимостей-и-конфликтов","Способ 4: Диагностика зависимостей и конфликтов",[21,2068,2069],{},[25,2070,2071],{},"Убедитесь, что все необходимые службы запущены, и нет конфликтов ресурсов.",[46,2073,2074,2104,2130],{},[49,2075,2076,2077,32,2079,32,2081,2084,2085,2100,2101,63],{},"Просмотрите зависимости в конфиге (",[60,2078,1813],{},[60,2080,1816],{},[60,2082,2083],{},"Wants=","). Для каждой зависимой службы выполните:\n",[88,2086,2088],{"className":90,"code":2087,"language":92,"meta":93,"style":93},"systemctl status имя_зависимой_службы\n",[60,2089,2090],{"__ignoreMap":93},[97,2091,2092,2094,2097],{"class":99,"line":100},[97,2093,1394],{"class":110},[97,2095,2096],{"class":124}," status",[97,2098,2099],{"class":124}," имя_зависимой_службы\n","\nОна должна быть в состоянии ",[60,2102,2103],{},"active (running)",[49,2105,2106,2107,2129],{},"Если служба использует сетевой порт, проверьте, не занят ли он:\n",[88,2108,2110],{"className":90,"code":2109,"language":92,"meta":93,"style":93},"sudo ss -tulpn | grep :номер_порта\n",[60,2111,2112],{"__ignoreMap":93},[97,2113,2114,2116,2119,2122,2124,2126],{"class":99,"line":100},[97,2115,54],{"class":110},[97,2117,2118],{"class":124}," ss",[97,2120,2121],{"class":114}," -tulpn",[97,2123,1125],{"class":178},[97,2125,1128],{"class":110},[97,2127,2128],{"class":124}," :номер_порта\n","\nЕсли порт уже занят другой службой, измените порт в конфиге вашей службы или остановите конфликтующий процесс.",[49,2131,2132,2133,73],{},"Проверьте, не пытается ли служба дважды занять один и тот же ресурс (например, сокет в ",[60,2134,2135],{},"/run/",[253,2137,2139],{"id":2138},"способ-5-запуск-вручную-для-диагностики","Способ 5: Запуск вручную для диагностики",[21,2141,2142,2148],{},[25,2143,2144,2145,2147],{},"Запустите команду, указанную в ",[60,2146,1778],{},", вручную от того же пользователя, что и служба."," Это покажет ошибки напрямую в терминале.",[46,2150,2151,2159,2179,2188],{},[49,2152,2153,2154,2156,2157,73],{},"Определите пользователя (",[60,2155,1797],{}," в конфиге, если нет — по умолчанию ",[60,2158,1367],{},[49,2160,2161,2162],{},"Если служба запускается от не-root пользователя, переключитесь на него:\n",[88,2163,2165],{"className":90,"code":2164,"language":92,"meta":93,"style":93},"sudo -u имя_пользователя -i\n",[60,2166,2167],{"__ignoreMap":93},[97,2168,2169,2171,2173,2176],{"class":99,"line":100},[97,2170,54],{"class":110},[97,2172,1200],{"class":114},[97,2174,2175],{"class":124}," имя_пользователя",[97,2177,2178],{"class":114}," -i\n",[49,2180,2181,2182,2184,2185,73],{},"Выполните команду из ",[60,2183,1778],{}," вручную, добавив ключи отладки, если нужно (например, ",[60,2186,2187],{},"--verbose",[49,2189,2190],{},"Ошибка, которая в логах systemd может быть сжата, при ручном запуске часто выводится подробно.",[253,2192,2194],{"id":2193},"способ-6-пересоздание-юнитов-и-очистка-состояния","Способ 6: Пересоздание юнитов и очистка состояния",[21,2196,2197],{},[25,2198,2199],{},"Если служба была удалена/перемещена, или state systemd \"застрял\".",[46,2201,2202,2233,2251],{},[49,2203,2204,2205],{},"Удалите и пересоздайте символические ссылки на юнит:\n",[88,2206,2208],{"className":90,"code":2207,"language":92,"meta":93,"style":93},"sudo systemctl daemon-reload\nsudo systemctl reset-failed имя_службы  # сбрасывает состояние failed\n",[60,2209,2210,2219],{"__ignoreMap":93},[97,2211,2212,2214,2217],{"class":99,"line":100},[97,2213,54],{"class":110},[97,2215,2216],{"class":124}," systemctl",[97,2218,1969],{"class":124},[97,2220,2221,2223,2225,2228,2230],{"class":99,"line":107},[97,2222,54],{"class":110},[97,2224,2216],{"class":124},[97,2226,2227],{"class":124}," reset-failed",[97,2229,1871],{"class":124},[97,2231,2232],{"class":103},"  # сбрасывает состояние failed\n",[49,2234,2235,2236],{},"Попробуйте запустить снова:\n",[88,2237,2239],{"className":90,"code":2238,"language":92,"meta":93,"style":93},"sudo systemctl start имя_службы\n",[60,2240,2241],{"__ignoreMap":93},[97,2242,2243,2245,2247,2249],{"class":99,"line":100},[97,2244,54],{"class":110},[97,2246,2216],{"class":124},[97,2248,519],{"class":124},[97,2250,1954],{"class":124},[49,2252,2253,2254,206,2257,2260,2261,63],{},"Для служб, которые были полностью удалены, убедитесь, что нет \"зомби\"-файлов в ",[60,2255,2256],{},"/etc/systemd/system/",[60,2258,2259],{},"/lib/systemd/system/",". Удалите старые файлы и повторите ",[60,2262,2263],{},"daemon-reload",[16,2265,2267],{"id":2266},"профилактика","Профилактика",[199,2269,2270,2283,2297,2309,2315],{},[49,2271,2272,2278,2279,206,2281,63],{},[25,2273,2274,2275],{},"Всегда используйте ",[60,2276,2277],{},"systemctl daemon-reload"," после ручного редактирования файлов служб в ",[60,2280,2256],{},[60,2282,2259],{},[49,2284,2285,2288,2289,2292,2293,2296],{},[25,2286,2287],{},"Проверяйте конфигурационные файлы приложений",", на которые ссылается служба (например, ",[60,2290,2291],{},"nginx -t"," для Nginx, ",[60,2294,2295],{},"postgresql -t"," для PostgreSQL).",[49,2298,2299,2302,2303,36,2305,2308],{},[25,2300,2301],{},"Не запускайте службы от root без необходимости",". Указывайте конкретного пользователя/группу в ",[60,2304,1797],{},[60,2306,2307],{},"Group=",". Это уменьшает риски безопасности и проблемы с правами.",[49,2310,2311,2314],{},[25,2312,2313],{},"Следите за обновлениями системы",". Обновления пакетов могут изменять конфигурационные файлы служб или исполняемые файлы. После обновления проверяйте статус критичных служб.",[49,2316,2317,2325],{},[25,2318,2319,2320,36,2322,2324],{},"Используйте ",[60,2321,1622],{},[60,2323,1592],{}," как первые команды"," при любом сбое — они дают 80% информации о проблеме.",[1280,2327,2328],{},"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 pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .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}",{"title":93,"searchDepth":107,"depth":107,"links":2330},[2331,2332,2333,2341],{"id":1608,"depth":107,"text":1609},{"id":1753,"depth":107,"text":1754},{"id":1832,"depth":107,"text":1833,"children":2334},[2335,2336,2337,2338,2339,2340],{"id":1836,"depth":128,"text":1837},{"id":1928,"depth":128,"text":1929},{"id":2001,"depth":128,"text":2002},{"id":2065,"depth":128,"text":2066},{"id":2138,"depth":128,"text":2139},{"id":2193,"depth":128,"text":2194},{"id":2266,"depth":107,"text":2267},"failed","2026-02-17 11:38:54","Служба не запускается в Linux? Узнайте, как диагностировать ошибку 'failed to start' в systemd. Пошаговая инструкция с 6 проверенными способами решения проблемы за 10 минут.","10-15 минут",[2347,2350,2353,2356],{"question":2348,"answer":2349},"Что такое systemd и почему службы управляются через него?","Systemd — это система инициализации и менеджер служб в большинстве современных дистрибутивов Linux. Он отвечает за запуск, остановку и мониторинг фоновых процессов (служб).",{"question":2351,"answer":2352},"Как посмотреть логи службы, которая не запускается?","Используйте команду `journalctl -u имя_службы --since \"5 min ago\"` для просмотра последних записей логов именно этой службы.",{"question":2354,"answer":2355},"Может ли ошибка быть из-за недостатка прав у пользователя?","Да, если служба настроена на запуск от отдельного пользователя (например, `User=www-data`), убедитесь, что этот пользователь существует и имеет права на доступ к файлам приложения.",{"question":2357,"answer":2358},"Что делать, если служба зависящая от другой не запускается?","Проверьте, запущена ли зависимая служба (указана в `Requires=` или `After=` конфига). Если нет, запустите её вручную или настройте правильные зависимости.",[2360,2363,2366,2369,2372],{"name":2361,"text":2362},"Проверьте статус службы","Выполните `systemctl status имя_службы`. Обратите внимание на строку 'Active:' и последние строки вывода — там часто указана краткая причина сбоя.",{"name":2364,"text":2365},"Изучите полные логи службы","Воспользуйтесь `journalctl -u имя_службы -b` для просмотра логов службы с момента последней загрузки системы. Ищите слова 'failed', 'error', 'permission denied'.",{"name":2367,"text":2368},"Проверьте конфигурационный файл службы","Выполните `systemctl cat имя_службы`, чтобы увидеть текущую конфигурацию. Проверьте пути в `ExecStart`, `ExecStartPre`, корректность синтаксиса (разделы [Unit], [Service], [Install]).",{"name":2370,"text":2371},"Убедитесь в наличии и доступности исполняемого файла","Проверьте, существует ли файл, указанный в `ExecStart` (например, `/usr/bin/ваша_программа`), и доступен ли он для чтения/выполнения пользователю, от которого запускается служба.",{"name":2373,"text":2374},"Проверьте зависимости и конфликты","В конфиге найдите `Requires=`, `After=`, `Wants=`. Убедитесь, что зависимые службы активны. Также проверьте, не конфликтует ли служба с другой, используя одинаковые ресурсы (порты, файлы).","PT15M",[2377,2378,2379,2380,2381,2382,2383,2384,2385,2386],"служба не запускается linux","service failed to start linux","systemd service failed","как исправить ошибку запуска службы","systemctl status failed","journalctl ошибка службы","служба не стартует ubuntu","ошибка systemd службы","service failed to start debian","диагностика systemd",{},[2389,2390,2391],"/errors/linux/ssh-service-failed","/errors/linux/apache-service-failed","/guides/linux/systemd-basics","Ошибки Linux",{"title":1598,"description":2344},"errors/linux/service-failed-to-start","Статья объясняет, почему служба в Linux может завершаться с ошибкой 'failed to start', и предоставляет детальные инструкции по диагностике и исправлению сбоев через systemd и journalctl.",[2397,27,243,1349,1394,1592,2398],"ошибки linux","запуск службы","error","7Jcpt2Ie-DW5xIs5Wc_Gh4ynprQxQ8mY3l-3zxMNlic",{"id":2402,"title":2403,"appliesTo":2404,"author":1299,"body":2409,"canonical":1299,"code":1299,"createdAt":1299,"description":3481,"difficulty":1302,"draft":1303,"estimatedTime":3482,"extension":1305,"faq":3483,"howToSteps":3496,"howToTotalTime":3512,"image":1299,"keywords":3513,"locale":1346,"meta":3524,"navigation":131,"path":1353,"platform":1349,"related":3525,"section":1354,"seo":3529,"severity":1299,"stem":3530,"summary":3531,"tags":3532,"twitterCreator":1299,"twitterSite":1299,"type":1362,"updatedAt":1299,"__hash__":3537},"content_ru/guides/linux/linux-init-systems-comparison.md","Выбор init-системы в Linux: подробное сравнение SysV, systemd и альтернатив",[2405,2406,2407,2408],"Linux дистрибутивы (Ubuntu, Debian, RHEL, Fedora, Alpine, Gentoo)","systemd 245+","OpenRC 0.42+","runit 2.1+",{"type":13,"value":2410,"toc":3452},[2411,2413,2416,2429,2454,2457,2459,2462,2473,2477,2481,2484,2488,2738,2742,2746,2755,2789,2794,2825,2830,2850,2856,2860,2879,2883,2903,2907,2927,2932,2936,2950,2954,2984,2988,3002,3007,3011,3032,3036,3063,3067,3087,3092,3094,3098,3102,3119,3141,3145,3183,3187,3222,3226,3229,3255,3259,3266,3270,3273,3290,3292,3296,3314,3318,3323,3327,3352,3356,3361,3391,3395,3416,3440,3449],[16,2412,19],{"id":18},[21,2414,2415],{},"Выбор init-системы — это фундаментальное решение при выборе или сборке дистрибутива Linux. Init-система (PID 1) — это первый процесс, который запускает ядро, и она отвечает за инициализацию всей системы, запуск и контроль служб (демонов), а также за обработку завершения работы.",[21,2417,2418,2419,32,2421,32,2424,36,2426,2428],{},"Понимание различий между ",[60,2420,27],{},[60,2422,2423],{},"SysV init",[60,2425,35],{},[60,2427,39],{}," критически важно для:",[199,2430,2431,2437,2443,2449],{},[49,2432,2433,2436],{},[25,2434,2435],{},"Системных администраторов:"," для эффективного управления службами и диагностики проблем.",[49,2438,2439,2442],{},[25,2440,2441],{},"Разработчиков встраиваемых систем:"," для минимизации потребления ресурсов.",[49,2444,2445,2448],{},[25,2446,2447],{},"Энтузиастов:"," для создания кастомных, легковесных или специализированных сборок.",[49,2450,2451],{},[25,2452,2453],{},"Всех, кто сталкивается с проблемами загрузки или управления службами.",[21,2455,2456],{},"Этот гайд даст вам четкие критерии для выбора, основанные не на идеологии, а на практических потребностях вашего проекта.",[16,2458,44],{"id":43},[21,2460,2461],{},"Для выполнения этого гайда и осмысленного сравнения вам потребуется:",[46,2463,2464,2467,2470],{},[49,2465,2466],{},"Базовое понимание архитектуры Linux (процессы, демоны, ядро).",[49,2468,2469],{},"Доступ к терминалу Linux (можно в виртуальной машине).",[49,2471,2472],{},"(Опционально) Возможность загружать Live-ISO различные дистрибутивов для тестирования.",[16,2474,2476],{"id":2475},"сравнение-архитектур-и-концепций","Сравнение архитектур и концепций",[253,2478,2480],{"id":2479},"что-такое-pid-1","Что такое PID 1?",[21,2482,2483],{},"Это первый процесс, запускаемый ядром. Всё остальное — его потомки. Его задача — запустить остальную систему и потом \"умереть\" не должен, чтобы не оставить \"зомби\"-процессы. Современные init-системы выполняют гораздо больше.",[253,2485,2487],{"id":2486},"ключевые-различия-в-таблице","Ключевые различия в таблице",[2489,2490,2491,2511],"table",{},[2492,2493,2494],"thead",{},[2495,2496,2497,2502,2504,2507,2509],"tr",{},[2498,2499,2501],"th",{"align":2500},"left","Критерий",[2498,2503,27],{"align":2500},[2498,2505,2506],{"align":2500},"SysV init (ISC)",[2498,2508,35],{"align":2500},[2498,2510,39],{"align":2500},[2512,2513,2514,2537,2577,2612,2638,2683,2700,2719],"tbody",{},[2495,2515,2516,2522,2525,2531,2534],{},[2517,2518,2519],"td",{"align":2500},[25,2520,2521],{},"Параллелизм",[2517,2523,2524],{"align":2500},"Полный, на основе зависимостей и cgroups.",[2517,2526,2527,2528,63],{"align":2500},"Последовательный (runlevels), слабый параллелизм через ",[60,2529,2530],{},"startpar",[2517,2532,2533],{"align":2500},"Частичный, требует явного указания зависимостей.",[2517,2535,2536],{"align":2500},"Полный, независимые службы запускаются параллельно.",[2495,2538,2539,2544,2552,2560,2568],{},[2517,2540,2541],{"align":2500},[25,2542,2543],{},"Конфигурация",[2517,2545,2546,2547,32,2549,73],{"align":2500},"Декларативные unit-файлы (",[60,2548,1768],{},[60,2550,2551],{},".timer",[2517,2553,2554,2555,2557,2558,63],{"align":2500},"Скрипты (",[60,2556,239],{},") и симлинки в ",[60,2559,377],{},[2517,2561,2554,2562,2564,2565,63],{"align":2500},[60,2563,239],{},") и зависимости в ",[60,2566,2567],{},"/etc/conf.d/",[2517,2569,2570,2571,32,2574,73],{"align":2500},"Простое управление через каталоги (",[60,2572,2573],{},"/etc/sv/",[60,2575,2576],{},"/var/service/",[2495,2578,2579,2584,2589,2597,2603],{},[2517,2580,2581],{"align":2500},[25,2582,2583],{},"Управление",[2517,2585,2586,2588],{"align":2500},[60,2587,1394],{}," (единая утилита для всего).",[2517,2590,2591,32,2593,32,2595,63],{"align":2500},[60,2592,243],{},[60,2594,246],{},[60,2596,239],{},[2517,2598,2599,32,2601,63],{"align":2500},[60,2600,564],{},[60,2602,567],{},[2517,2604,2605,2607,2608,2611],{"align":2500},[60,2606,1459],{}," (управление), ",[60,2609,2610],{},"ln -s"," (включение).",[2495,2613,2614,2619,2626,2629,2635],{},[2517,2615,2616],{"align":2500},[25,2617,2618],{},"Журналинг",[2517,2620,2621,2622,2625],{"align":2500},"Встроенный (",[60,2623,2624],{},"journald","), бинарный, с фильтрацией.",[2517,2627,2628],{"align":2500},"Внешний (rsyslog, syslog-ng).",[2517,2630,2631,2632,73],{"align":2500},"Внешний (обычно ",[60,2633,2634],{},"syslog-ng",[2517,2636,2637],{"align":2500},"Внешний (svlogd, или любой syslog).",[2495,2639,2640,2645,2655,2664,2680],{},[2517,2641,2642],{"align":2500},[25,2643,2644],{},"Зависимости",[2517,2646,2647,2648,32,2650,32,2652,63],{"align":2500},"Глубокая, через ",[60,2649,1816],{},[60,2651,1813],{},[60,2653,2654],{},"PartOf=",[2517,2656,2657,2658,32,2661,73],{"align":2500},"Через номера в именах скриптов (",[60,2659,2660],{},"S01name",[60,2662,2663],{},"K01name",[2517,2665,2666,2667,32,2670,32,2673,32,2676,2679],{"align":2500},"Через ",[60,2668,2669],{},"need",[60,2671,2672],{},"use",[60,2674,2675],{},"before",[60,2677,2678],{},"after"," в скриптах.",[2517,2681,2682],{"align":2500},"Нет встроенного механизма, зависит от порядка запуска в каталоге.",[2495,2684,2685,2690,2693,2696,2698],{},[2517,2686,2687],{"align":2500},[25,2688,2689],{},"Требует cgroups?",[2517,2691,2692],{"align":2500},"Да, для контроля ресурсов и деревьев процессов.",[2517,2694,2695],{"align":2500},"Нет.",[2517,2697,2695],{"align":2500},[2517,2699,2695],{"align":2500},[2495,2701,2702,2707,2710,2713,2716],{},[2517,2703,2704],{"align":2500},[25,2705,2706],{},"Пример дистрибутивов",[2517,2708,2709],{"align":2500},"Ubuntu, Debian, RHEL/Fedora, Arch, openSUSE.",[2517,2711,2712],{"align":2500},"Devuan, старые версии Debian (до 8).",[2517,2714,2715],{"align":2500},"Alpine, Gentoo, Artix.",[2517,2717,2718],{"align":2500},"Void Linux, Artix, Alpine (опционально).",[2495,2720,2721,2726,2729,2732,2735],{},[2517,2722,2723],{"align":2500},[25,2724,2725],{},"Философия",[2517,2727,2728],{"align":2500},"\"Всё в одном\", интеграция, сложность ради функциональности.",[2517,2730,2731],{"align":2500},"Простота, \"делай одну thing и делай её хорошо\".",[2517,2733,2734],{"align":2500},"Гибкость, простые скрипты, совместимость с BSD.",[2517,2736,2737],{"align":2500},"Простота, надежность, \"сделай и забудь\".",[16,2739,2741],{"id":2740},"подробный-разбор-каждой-системы","Подробный разбор каждой системы",[253,2743,2745],{"id":2744},"_1-systemd-современный-стандарт","1. systemd: Современный стандарт",[21,2747,2748,2751,2752,2754],{},[25,2749,2750],{},"Архитектура:"," Монолитная, но модульная. PID 1 (",[60,2753,27],{},") — это менеджер системы и служб. Он управляет:",[199,2756,2757,2763,2769,2775],{},[49,2758,2759,2762],{},[25,2760,2761],{},"cgroups"," для изоляции и учета ресурсов.",[49,2764,2765,2768],{},[25,2766,2767],{},"Journal"," для централизованного логирования.",[49,2770,2771,2774],{},[25,2772,2773],{},"D-Bus"," для IPC.",[49,2776,2777,2780,2781,2784,2785,2788],{},[25,2778,2779],{},"Сети"," (networkd), ",[25,2782,2783],{},"логин"," (logind), ",[25,2786,2787],{},"таймеры"," (timer units).",[21,2790,2791],{},[25,2792,2793],{},"Преимущества:",[199,2795,2796,2802,2808,2819],{},[49,2797,2798,2801],{},[25,2799,2800],{},"Скорость загрузки:"," Параллельный запуск на основе зависимостей.",[49,2803,2804,2807],{},[25,2805,2806],{},"Мощность:"," Глубокий контроль над жизненным циклом служб (рестарт, таймауты, ресурсы).",[49,2809,2810,2813,2814,2816,2817,73],{},[25,2811,2812],{},"Интеграция:"," Единая точка входа (",[60,2815,1394],{},"), единый журнал (",[60,2818,1592],{},[49,2820,2821,2824],{},[25,2822,2823],{},"Стандартизация:"," Фактический отраслевой стандарт, огромная поддержка.",[21,2826,2827],{},[25,2828,2829],{},"Недостатки:",[199,2831,2832,2838,2844],{},[49,2833,2834,2837],{},[25,2835,2836],{},"Сложность:"," Большая кодобаза, много \"магии\" под капотом.",[49,2839,2840,2843],{},[25,2841,2842],{},"Потребление ресурсов:"," Выше, чем у альтернатив (хотя и минимальное).",[49,2845,2846,2849],{},[25,2847,2848],{},"Философские споры:"," Нарушает Unix-философию \"одна программа — одна задача\".",[21,2851,2852,2855],{},[25,2853,2854],{},"Когда выбирать:"," Для десктопов, серверов, где важны скорость, современные функции (снимки, изоляция) и доступ к обширной документации/сообществу.",[253,2857,2859],{"id":2858},"_2-sysv-init-классика","2. SysV init: Классика",[21,2861,2862,2864,2865,2867,2868,2871,2872,2874,2875,36,2877,63],{},[25,2863,2750],{}," Простая. PID 1 — это ",[60,2866,205],{},", который читает ",[60,2869,2870],{},"/etc/inittab"," и запускает скрипты из ",[60,2873,239],{}," в соответствии с текущим runlevel'ом (0-6). Управление через ",[60,2876,243],{},[60,2878,246],{},[21,2880,2881],{},[25,2882,2793],{},[199,2884,2885,2891,2897],{},[49,2886,2887,2890],{},[25,2888,2889],{},"Простота:"," Код маленький, понятный, легко читать и отлаживать.",[49,2892,2893,2896],{},[25,2894,2895],{},"Стабильность:"," Проверена десятилетиями.",[49,2898,2899,2902],{},[25,2900,2901],{},"Минимализм:"," Почти нулевые накладные расходы.",[21,2904,2905],{},[25,2906,2829],{},[199,2908,2909,2915,2921],{},[49,2910,2911,2914],{},[25,2912,2913],{},"Медленная загрузка:"," Последовательный запуск служб.",[49,2916,2917,2920],{},[25,2918,2919],{},"Слабое управление:"," Нет встроенного контроля зависимостей, сложно управлять динамическими службами.",[49,2922,2923,2926],{},[25,2924,2925],{},"Устаревание:"," Подавляющее большинство современных дистрибутивов отказались от него.",[21,2928,2929,2931],{},[25,2930,2854],{}," Только для legacy-систем, образовательных целей или в дистрибутивах, сознательно отказавшихся от systemd (Devuan). В новых проектах — не рассматривать.",[253,2933,2935],{"id":2934},"_3-openrc-гибкий-и-совместимый","3. OpenRC: Гибкий и совместимый",[21,2937,2938,2940,2941,2943,2944,2946,2947,2949],{},[25,2939,2750],{}," PID 1 — это ",[60,2942,205],{},", а управление службами осуществляется через скрипты в ",[60,2945,239],{}," (совместимы с SysV) и файлы зависимостей в ",[60,2948,2567],{},". Запуск параллельный, но зависимости нужно описывать явно в скриптах.",[21,2951,2952],{},[25,2953,2793],{},[199,2955,2956,2962,2968,2978],{},[49,2957,2958,2961],{},[25,2959,2960],{},"Гибкость:"," Совместимость с скриптами SysV, но с современным параллелизмом.",[49,2963,2964,2967],{},[25,2965,2966],{},"Контроль:"," Понятные скрипты на Bash/POSIX sh.",[49,2969,2970,2972,2973,36,2975,63],{},[25,2971,2901],{}," Нет глобального демона, только ",[60,2974,205],{},[60,2976,2977],{},"rc",[49,2979,2980,2983],{},[25,2981,2982],{},"Надежность:"," Используется в Alpine Linux (контейнеры, роутеры) и Gentoo.",[21,2985,2986],{},[25,2987,2829],{},[199,2989,2990,2996],{},[49,2991,2992,2995],{},[25,2993,2994],{},"Меньше \"из коробки\":"," Нет встроенного журналинга, управления сетью, сессий.",[49,2997,2998,3001],{},[25,2999,3000],{},"Требует ручной настройки:"," Зависимости нужно прописывать в каждом скрипте.",[21,3003,3004,3006],{},[25,3005,2854],{}," Для встраиваемых систем, роутеров, контейнерных базовых образов (Alpine), где нужен баланс между простотой и современными возможностями. Идеален для Gentoo.",[253,3008,3010],{"id":3009},"_4-runit-простота-и-надежность","4. runit: Простота и надежность",[21,3012,3013,2940,3015,3018,3019,247,3022,3024,3025,3028,3029,3031],{},[25,3014,2750],{},[60,3016,3017],{},"runsvdir",", который мониторит каталоги в ",[60,3020,3021],{},"/etc/service/",[60,3023,2576],{},"). Для каждой службы запускается ",[60,3026,3027],{},"runsv",", который следит за одним процессом. Управление через ",[60,3030,1459],{}," (start/stop/status). Зависимости реализуются через скрипты-обертки.",[21,3033,3034],{},[25,3035,2793],{},[199,3037,3038,3047,3052,3057],{},[49,3039,3040,3043,3044,63],{},[25,3041,3042],{},"Крайняя простота:"," Конфигурация — это просто каталог с исполняемым файлом ",[60,3045,3046],{},"run",[49,3048,3049,3051],{},[25,3050,2982],{}," Автоматический перезапуск упавших служб.",[49,3053,3054,3056],{},[25,3055,2901],{}," Очень малый размер и потребление памяти.",[49,3058,3059,3062],{},[25,3060,3061],{},"Читаемость:"," Легко понять, как работает каждая служба.",[21,3064,3065],{},[25,3066,2829],{},[199,3068,3069,3075,3081],{},[49,3070,3071,3074],{},[25,3072,3073],{},"Очень мало встроенного:"," Нет ничего, кроме управления процессами. Журналинг, таймеры — только внешние инструменты.",[49,3076,3077,3080],{},[25,3078,3079],{},"Нет встроенных зависимостей:"," Требует хакерских решений для сложных цепочек.",[49,3082,3083,3086],{},[25,3084,3085],{},"Меньше распространен:"," Меньше документации и примеров, чем для systemd/OpenRC.",[21,3088,3089,3091],{},[25,3090,2854],{}," Для простых, изолированных сервисов (микросервисы), встраиваемых систем, где важна предсказуемость и простота. Основа Void Linux.",[766,3093],{},[16,3095,3097],{"id":3096},"пошаговая-инструкция-как-выбрать","Пошаговая инструкция: Как выбрать?",[253,3099,3101],{"id":3100},"шаг-1-определите-текущую-init-систему","Шаг 1: Определите текущую init-систему",[88,3103,3105],{"className":90,"code":3104,"language":92,"meta":93,"style":93},"ps -p 1 -o comm=\n",[60,3106,3107],{"__ignoreMap":93},[97,3108,3109,3111,3113,3115,3117],{"class":99,"line":100},[97,3110,111],{"class":110},[97,3112,115],{"class":114},[97,3114,118],{"class":114},[97,3116,121],{"class":114},[97,3118,125],{"class":124},[199,3120,3121,3126,3136],{},[49,3122,3123,3125],{},[60,3124,27],{}," → у вас systemd.",[49,3127,3128,3130,3131,206,3133,73],{},[60,3129,205],{}," → скорее всего, SysV или OpenRC (нужно смотреть в ",[60,3132,2870],{},[60,3134,3135],{},"/etc/rc.conf",[49,3137,3138,3140],{},[60,3139,39],{}," → у вас runit.",[253,3142,3144],{"id":3143},"шаг-2-ответьте-на-ключевые-вопросы","Шаг 2: Ответьте на ключевые вопросы",[46,3146,3147,3153,3159,3165,3171,3177],{},[49,3148,3149,3152],{},[25,3150,3151],{},"Для чего система?"," (Десктоп, сервер, встраиваемое устройство, контейнер).",[49,3154,3155,3158],{},[25,3156,3157],{},"Важна ли максимальная скорость загрузки?"," (systemd > OpenRC ≈ runit > SysV).",[49,3160,3161,3164],{},[25,3162,3163],{},"Нужны ли сложные зависимости между службами?"," (systemd > OpenRC > runit > SysV).",[49,3166,3167,3170],{},[25,3168,3169],{},"Критично ли потребление памяти/CPU?"," (runit ≈ OpenRC \u003C systemd).",[49,3172,3173,3176],{},[25,3174,3175],{},"Нужен ли встроенный журналинг?"," (только systemd).",[49,3178,3179,3182],{},[25,3180,3181],{},"Планируете ли вы глубоко кастомизировать?"," (OpenRC и runit проще для понимания и модификации).",[253,3184,3186],{"id":3185},"шаг-3-сопоставьте-ответы-с-таблицей-выше","Шаг 3: Сопоставьте ответы с таблицей выше",[199,3188,3189,3197,3204,3213],{},[49,3190,3191,3194,3195,63],{},[25,3192,3193],{},"Десктоп/современный сервер:"," ",[60,3196,27],{},[49,3198,3199,3194,3202,63],{},[25,3200,3201],{},"Контейнер/роутер (Alpine):",[60,3203,35],{},[49,3205,3206,3194,3209,206,3211,63],{},[25,3207,3208],{},"Минималистичный сервер/пользовательская сборка (Void/Gentoo):",[60,3210,39],{},[60,3212,35],{},[49,3214,3215,3194,3218,3221],{},[25,3216,3217],{},"Legacy или максимальный минимализм:",[60,3219,3220],{},"SysV"," (только если нет выбора).",[253,3223,3225],{"id":3224},"шаг-4-протестируйте","Шаг 4: Протестируйте",[21,3227,3228],{},"Скачайте Live-ISO:",[199,3230,3231,3237,3243],{},[49,3232,3233,3236],{},[25,3234,3235],{},"Alpine Linux"," (OpenRC) — для теста легковесной системы.",[49,3238,3239,3242],{},[25,3240,3241],{},"Void Linux"," (runit) — для теста простой и быстрой системы.",[49,3244,3245,3248,3249,32,3251,32,3253,73],{},[25,3246,3247],{},"Ubuntu/Fedora"," (systemd) — для теста стандарта.\nЗагрузитесь с них в VM и пощупайте команды управления (",[60,3250,564],{},[60,3252,1459],{},[60,3254,1394],{},[253,3256,3258],{"id":3257},"шаг-5-примите-решение","Шаг 5: Примите решение",[21,3260,3261,3262,3265],{},"Выбирайте ",[25,3263,3264],{},"дистрибутив",", который по умолчанию использует нужную init. Не пытайтесь \"втыкать\" другую init в Ubuntu или Fedora — это путь к бесконечным проблемам. Если нужен полный контроль — используйте Gentoo или собирайте систему с нуля (LFS).",[16,3267,3269],{"id":3268},"проверка-результата","Проверка результата",[21,3271,3272],{},"Вы успешно выбрали init-систему, если:",[46,3274,3275,3278,3281,3284,3287],{},[49,3276,3277],{},"Понимаете её основные концепции и философию.",[49,3279,3280],{},"Можете наглядно объяснить её преимущества для вашего случая.",[49,3282,3283],{},"Умеете выполнять базовые операции: запуск/остановка/статус службы, включение/отключение автозапуска.",[49,3285,3286],{},"Знаете, где хранятся конфигурационные файлы служб.",[49,3288,3289],{},"Осознанно выбрали дистрибутив, соответствующий вашему выбору.",[16,3291,1209],{"id":1208},[253,3293,3295],{"id":3294},"проблема-мне-нужен-systemd-но-я-хочу-минимализм","Проблема: \"Мне нужен systemd, но я хочу минимализм\"",[21,3297,3298,3301,3302,3305,3306,3309,3310,3313],{},[25,3299,3300],{},"Решение:"," Используйте дистрибутивы на base systemd, но без лишних компонентов (например, ",[60,3303,3304],{},"Debian netinst"," с выбором только ",[60,3307,3308],{},"standard system utilities","). Или настройте systemd на отключение ненужных юнитов (",[60,3311,3312],{},"systemctl mask","). Альтернатива — Alpine с OpenRC, если функционал systemd не критичен.",[253,3315,3317],{"id":3316},"проблема-openrcrunit-не-могут-управлять-сложными-зависимостями-как-systemd","Проблема: \"OpenRC/runit не могут управлять сложными зависимостями как systemd\"",[21,3319,3320,3322],{},[25,3321,3300],{}," Для сложных сервисов (веб-сервер + БД + кэш) в OpenRC/runit придется создавать \"мета\"-скрипты-обертки, которые запускают несколько служб в нужном порядке, или использовать внешние оркестраторы (supervisor, s6). В systemd это делается декларативно в одном файле.",[253,3324,3326],{"id":3325},"проблема-нужен-journald-но-я-на-alpine-openrc","Проблема: \"Нужен journald, но я на Alpine (OpenRC)\"",[21,3328,3329,3331,3332,206,3334,3337,3338,3341,3342,206,3345,3348,3349,3351],{},[25,3330,3300],{}," Установите и настройте классический стек логирования: ",[60,3333,2634],{},[60,3335,3336],{},"rsyslog"," для сбора логов, и ",[60,3339,3340],{},"logrotate"," для ротации. Для централизованного сбора — ",[60,3343,3344],{},"fluentd",[60,3346,3347],{},"loki",". Полноценной замены ",[60,3350,1592],{}," не будет, но функциональность достижима.",[253,3353,3355],{"id":3354},"проблема-скрипты-служб-в-openrc-не-запускаются","Проблема: \"Скрипты служб в OpenRC не запускаются\"",[21,3357,3358,3360],{},[25,3359,3300],{}," Проверьте:",[46,3362,3363,3371,3378,3384],{},[49,3364,3365,3366,3368,3369,73],{},"Права на скрипт в ",[60,3367,239],{},": должен быть исполняемым (",[60,3370,1223],{},[49,3372,3373,3374,3377],{},"Синтаксис скрипта (должен начинаться с ",[60,3375,3376],{},"#!/sbin/openrc-run"," или быть совместим с SysV).",[49,3379,3380,3381,3383],{},"Файл зависимости в ",[60,3382,2567],{}," (если используется).",[49,3385,3386,3387,3390],{},"Вывод команды: ",[60,3388,3389],{},"rc-service \u003Cимя_службы> start"," — она покажет ошибку.",[253,3392,3394],{"id":3393},"проблема-runit-служба-не-перезапускается-после-падения","Проблема: \"runit служба не перезапускается после падения\"",[21,3396,3397,3399,3400,3402,3403,3405,3406,3409,3410,3412,3413,3415],{},[25,3398,3300],{}," Проверьте, что каталог службы в ",[60,3401,3021],{}," содержит исполняемый файл ",[60,3404,3046],{}," и что он запускает процесс ",[25,3407,3408],{},"в foreground"," (не как демон). ",[60,3411,3027],{}," управляет только foreground-процессами. Пример ",[60,3414,3046],{},"-файла:",[88,3417,3419],{"className":90,"code":3418,"language":92,"meta":93,"style":93},"#!/bin/sh\nexec /usr/bin/myapp --config /etc/myapp.conf\n",[60,3420,3421,3426],{"__ignoreMap":93},[97,3422,3423],{"class":99,"line":100},[97,3424,3425],{"class":103},"#!/bin/sh\n",[97,3427,3428,3431,3434,3437],{"class":99,"line":107},[97,3429,3430],{"class":114},"exec",[97,3432,3433],{"class":124}," /usr/bin/myapp",[97,3435,3436],{"class":114}," --config",[97,3438,3439],{"class":124}," /etc/myapp.conf\n",[21,3441,3442,3443,36,3446,73],{},"(без ",[60,3444,3445],{},"&",[60,3447,3448],{},"nohup",[1280,3450,3451],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":93,"searchDepth":107,"depth":107,"links":3453},[3454,3455,3456,3460,3466,3473,3474],{"id":18,"depth":107,"text":19},{"id":43,"depth":107,"text":44},{"id":2475,"depth":107,"text":2476,"children":3457},[3458,3459],{"id":2479,"depth":128,"text":2480},{"id":2486,"depth":128,"text":2487},{"id":2740,"depth":107,"text":2741,"children":3461},[3462,3463,3464,3465],{"id":2744,"depth":128,"text":2745},{"id":2858,"depth":128,"text":2859},{"id":2934,"depth":128,"text":2935},{"id":3009,"depth":128,"text":3010},{"id":3096,"depth":107,"text":3097,"children":3467},[3468,3469,3470,3471,3472],{"id":3100,"depth":128,"text":3101},{"id":3143,"depth":128,"text":3144},{"id":3185,"depth":128,"text":3186},{"id":3224,"depth":128,"text":3225},{"id":3257,"depth":128,"text":3258},{"id":3268,"depth":107,"text":3269},{"id":1208,"depth":107,"text":1209,"children":3475},[3476,3477,3478,3479,3480],{"id":3294,"depth":128,"text":3295},{"id":3316,"depth":128,"text":3317},{"id":3325,"depth":128,"text":3326},{"id":3354,"depth":128,"text":3355},{"id":3393,"depth":128,"text":3394},"Пошаговое руководство по выбору init-системы для вашего дистрибутива Linux. Сравниваем systemd, SysV, OpenRC и runit по скорости, сложности и функциям. Принимайте обоснованное решение!","20-30 мин",[3484,3487,3490,3493],{"question":3485,"answer":3486},"Почему systemd стал стандартом в большинстве дистрибутивов?","systemd обеспечивает параллельный запуск служб, имеет единую точку входа для управления (systemctl), глубокую интеграцию с ядром (cgroups) и богатый функционал для мониторинга и логирования. Это повышает скорость загрузки и удобство администрирования.",{"question":3488,"answer":3489},"Можно ли заменить systemd на другую init-систему в Ubuntu или Fedora?","Технически возможно, но крайне не рекомендуется. Эти дистрибутивы жестко завязаны на systemd и его сервисы. Попытка замены приведет к неработоспособности графической оболочки, сети и многих базовых функций. Для альтернатив выбирайте дистрибутивы, изначально на них основанные (Alpine, Void, Gentoo).",{"question":3491,"answer":3492},"Какая init-система лучше для встраиваемых систем или роутеров?","Для минималистичных и встраиваемых систем оптимальны **runit** ( Void Linux) или **OpenRC** (Alpine Linux, Gentoo). Они потребляют мало ресурсов, имеют простую конфигурацию и не несут избыточного функционала systemd.",{"question":3494,"answer":3495},"Безопасна ли systemd? Не является ли она монолитом?","systemd действительно имеет большой кодобазу, что вызывает дискуссии о безопасности. Однако она активно аудируется. Её компоненты разделены на отдельные бинарники. Критики указывают на сложность и потенциальную поверхность атаки. Для максимальной безопасности в изолированных средах часто предпочитают более простые init-системы.",[3497,3500,3503,3506,3509],{"name":3498,"text":3499},"Определите текущую init-систему","Выполните команду `ps -p 1 -o comm=`. Результат покажет процесс PID 1, который и является init-системой (systemd, init, runit, etc.).",{"name":3501,"text":3502},"Сформулируйте требования","Ответьте на вопросы: нужна ли максимальная скорость загрузки? Важна ли простота конфигурации? Требуется ли встроенный журналинг? Используете ли вы cgroups для изоляции сервисов?",{"name":3504,"text":3505},"Сопоставьте требования с особенностями систем","Используйте таблицу сравнения ниже, чтобы найти систему, соответствующую вашим ответам. Например, для сервера с простыми службами подойдет OpenRC, для десктопа с современным железом — systemd.",{"name":3507,"text":3508},"Протестируйте в изолированной среде","Перед окончательным выбором протестируйте понравившийся вариант в виртуальной машине (QEMU/KVM, VirtualBox), используя Live-ISO дистрибутива, заточенного под эту init (например, Alpine Linux для OpenRC).",{"name":3510,"text":3511},"Примите решение и документируйте конфигурацию","Выберите дистрибутив, который по умолчанию использует нужную вам init-систему. При кастомизации (особенно в Gentoo) задокументируйте все изменения в конфигурационных файлах служб.","PT25M",[3514,3515,3516,3517,3518,3519,3520,3521,3522,3523],"init система linux сравнение","systemd vs sysvinit","что такое init в linux","какая init система у ubuntu","openrc vs systemd","runit init система","управление службами systemd","замена systemd на другой init","альтернативы systemd","init процесс linux",{},[3526,3527,3528],"/guides/linux/systemd-service-management","/guides/linux/runlevel-management","/errors/linux/systemd-failed-to-start",{"title":2403,"description":3481},"guides/linux/linux-init-systems-comparison","Этот гайд подробно сравнивает основные init-системы Linux (systemd, SysV init, OpenRC, runit). Вы узнаете об их архитектуре, производительности, способах управления службами и получите четкие критерии для выбора под ваши задачи.",[1349,27,209,205,3533,3534,3535,3536],"администрирование","daemon","Gentoo","Alpine","oI1YAH88jOSELlpb8NCZOAzMwyBzdJ9dbuTSHp6c10g"]