Не стартует service linux

Обновлено: 04.07.2024

Операционная система Linux обычно запускается весьма быстро. Именно поэтому большинство данных, которые вводятся при загрузке ОС, прокручиваются перед пользователем в ускоренном режиме. Даже если постараться, прочесть всплывающий текст невозможно. При загрузке ОС системы нередко возникают разнообразные ошибки. Многие пользователи сталкиваются с проблемой, когда Линукс напрочь отказывается загружаться.

Причин возникновения ошибок может быть много. Неполадки возникают в любом месте загрузки, на любом компоненте системы инициализации. В ОС есть специальная рубрика systemd. Именно в ней прописываются всевозможные ошибки, они выводятся на экран вашего монитора. Прочесть их также практически невозможно.

Причины отказа в загрузке ОС Linux

Стоит рассмотреть наиболее распространённые варианты ошибок, которые устранить весьма просто:

  • Операционная система отказалась запускаться после того, как были загружены обновления. При обновлении дистрибутива, возможно, что-то пошло не так. В итоге, пользователь не может посетить на рабочую оболочку.
  • ОС Linux может перестать запускаться в том случае, когда имеются поврежденные участки в системе файлов.
  • Система отказывается мониторить один из наиболее главных разделов на жестком диске. Это зачастую происходит из-за неправильно введенных настроек в fstab.
  • Linux отказывается загружаться при наличии несовместимостей на драйверах для графики и ядре.
  • Операционная система не запустится, если жестки диск переполнен информацией. В этом случае все просто – негде сохранить временные файлы.

Если пользователь иногда экспериментирует с ОС, при этом обращается с ней не очень бережно, ошибки будут появляться очень часто. Стоит заметить, неполадки могут возникнуть и из-за загрузки Grub. Чтобы устранить неисправности, первоначально потребуется тщательно изучить лаги на последней загрузке. Это даст возможность максимально точно определить причину. Сделать это можно с использованием LiveCD или путем загрузки системы в режиме восстановления.

Особенности создания LiveCD/USB

Для восстановления загрузки операционной системы потребуется носитель, на который временно или долгосрочно сохраняется сама система. На CD или USB необходимо создать и сохранить образ дистрибутива. Чаще всего используется Ubuntu, но можно использовать другие дистрибутивы Debian, Centos, Астра Linux.

Для этих целей потребуется посетить официальный портал загрузки. Здесь есть множество версий. Можно выбрать любую из понравившихся вариаций. Рекомендуется использовать наиболее новые версии, они совместимы с современным оборудованием.

Как проверить журнал загрузки?

Первоначально требуется загрузить операционную систему с LiveUSB, запустить разделы с главной системы. Можно также войти в режим восстановления с использованием специального загрузчика, называемого Grub. Чтобы сделать вышеописанные манипуляции, в большинстве дистрибутивов имеется функция, предназначенная именно для этих целей. Это позволит вернуть систему в нормальный рабочий режим.

Чтобы начать работу с помощью вспомогательной опции, потребуется ввести пароль суперпользователя. Если этот пункт не появится на экране вашего монитора, потребуется запустить восстановление Bash путём нажатия на клавишу «Е» в меню Grub. Здесь прописывается специальная строка параметра на ядре.

Для просмотра логов в разделе systemd можно воспользоваться утилитой journalctl. Система самостоятельно подскажет, какую команду рекомендуется загрузить для просмотра логов.

Для просмотра логов можно использовать команду cat или другие, например mcview, nano.

Дальнейшие действия, связанные с устранением ошибок, нужно совершать с учетом полученной информации из лог-файлов. Это позволит быстро решить возникшие проблемы.

Загрузчик Grub не работает. Как его восстановить?

Нередко случаются ситуации, когда загрузчик Grub не функционирует. Восстановить его можно с помощью утилиты Boot repair. Сделать это можно буквально за пару кликов.

Данная утилита имеет свой собственный GUI. Разобраться с ним сможет даже неопытный человек. Для установки программы можно использовать несколько способов:

  • Создание и установка образа диска, именуемого Boot Repair. Именно с него будет осуществляться дальнейшая загрузка.
  • Установка утилиты с использованием специального PPA-репозитория. Он располагается в LiveCD или LiveUSB дистрибутиве.

Первый вышеописанный способ максимально понятен. Достаточно скачать образ, записать его с использованием специальных инструментов. Второй метод немного сложнее. Здесь нужно знать определенные команды.

После загрузки утилиты Boot repair пользователю будут доступны несколько вариантов действий:

Устранение проблемы, связанной с отсутствием места на жестком диске

Можно представить, что ОС перестала загружаться после того, как вы обновили систему. Ошибки могли возникнуть из-за двух вариантов причин:

  • После загрузки обновлений корневой раздел женского диска переполнен. В этом случае система не может сохранять временные файлы.
  • При обновлении произошел сбой, который привел к повреждению важных пакетов ОС.

Первым делом требуется посмотреть, есть ли свободное место на диске. Если в специальной рубрике загрузчика написано 0%, вам известна причина отказа в загрузке. Для устранения неполадки требуется удалить файлы, в которых нет необходимости. Для этого стоит перемонтировать корневые разделы для чтения и сохранения информации.

Нарушена целостность пакетов

Вы проверили свободное место на жестком диске и обнаружили, что там доступно более пяти гигабайт. В этом случае можно подумать, что неполадка ОС связана именно с целостностью пакетов. Для исправления нужно выполнить команду dpkg.

Стоит отметить, что такой способ будет работать только тогда, когда система загружена в режиме LiveUSB. В режиме восстановления отсутствует интернет. Настроить его можно с использованием команды dhclient.

Ошибка загрузки системы, связанная с проблемами в /ETC/FSTAB

Это еще одна возможная причина отказа работы операционной системы. Чаще всего в данной рубрике имеется неверная запись одного из разделов. В этом случае Linux не способен мониторить данный раздел.

Если он является корневым, загрузиться ему никак не получится. Изучив systemd, вы обнаружите большое количество ошибок. Требуется обнаружить именно первую, вследствие которой возникли все остальные. Если вы не уверены, что имеется ошибка, рекомендуется на всякий случай заменить первичную запись без UUID.

Еще одна причина – повреждена система файлов

Чаще всего файловая система исследуется в автоматическом режиме, сканируется на наличие неисправностей и сбоев в работе. Нередко пользователи отключают данную функцию, поэтому возможна непредвиденная остановка работы персонального компьютера. Файловая система при этом повреждена, а программа для восстановления – не работает.

При поиске ошибок монтирования рекомендуется проверять файловую систему. После запаска команды в соответствующем разделе вводится адрес требуемого файла.

Как проверить работу драйвера для видео?

Если вами ранее была обновлена операционная система, или вы устанавливали проприетарный драйвер, а потом обнаружили ошибку, проблема именно с данной утилитой. Это обусловлено тем, что установленные программы и вспомогательные инструменты не всегда совместимы с модификациями используемых ядер.

Чтобы устранить проблему, нужно удалить драйвер. Делается это в восстанавливающем режиме. Вводится специальная команда, соответствующая вашей видеокарте. Если у драйвера исходный код открытого типа, он является встроенным в ядро, сбоев загрузки ОС не должно возникать. После того, как удален драйвер, исчезнет черный экран.

Что еще может вызвать сбой загрузки?

Одна из наиболее актуальных и распространённых причин – неправильная установка 2 операционных систем. Linux и Windows просто-напросто могут конфликтовать между собой. Стоит обязательно знать последовательность установки.

Первоначально устанавливается Windows, а лишь потом – Linux.

Если выполнить действия с точностью до наоборот, непременно повредится Grub. Загружаться будет только Windows, а Linux останется неактивной.

Нужно заметить, что повреждение Grub может возникнуть и по другим причинам. К примеру, при попытке установки параметров для запуска ручным способом. Это делают неопытные специалисты. Для устранения ошибок вручную убирается все лишнее, либо заново устанавливается сам загрузчик.

В операционной системе linux, так же как и в Windows, кроме обычных программ, которые могут взаимодействовать с пользователем есть еще один вид программ. Это работающие в фоне службы. Важность служб тяжело переоценить, они следят за состоянием системы, обеспечивают автоматическое подключение внешних устройств и сети, позволяют процессам взаимодействовать с оборудованием (dbus), а также в виде служб реализованы различные веб-серверы и серверы баз данных. В отличие от пользовательских программ, службы выполняются в фоне, и пользователь не имеет к ним прямого доступа. Пользователь еще не вошел в систему, только началась загрузка а основные службы уже запущенны и работают.

В этой статье мы рассмотрим управление службами Linux. Мы не будем трогать уже устаревшие системы, такие как SysVinit, сосредоточимся только на Systemd. Вы узнаете, как посмотреть запущенные службы linux, а также останавливать и запускать их самому.

Немного теории

Но потом на смену этому методу пришла новая модель и система инициализации systemd. Система инициализации запускается сразу после загрузки ядра и начинает инициализировать службы, теперь появилась возможность параллельной инициализации, а также зависимостей между службами. Таким образом, теперь можно определить сложное дерево порядка запуска служб. Но мы не будем вникать в подробности создания служб, нас интересует только сам процесс запуска. После запуска systemd собирает весь вывод службы в лог, и следит за ее работой, если служба аварийно завершилась, то автоматически ее перезапускает.

Служба в Systemd описывается файлом юнита, в нем описано что с ней нужно делать и как себя вести. Существуют такие типы служб:

  • service - обычная служба, программа
  • target - группа служб
  • automount - точка автоматического монтирования
  • device - файл устройства, генерируется на этапе загрузки
  • mount - точка монтирования
  • path - файл или папка
  • scope - процесс
  • slice - группа системных служб systemd
  • snapshot - сохраненное состояние запущенных служб
  • socket - сокет для взаимодействия между процессами.

Нас будут интересовать только service, и совсем немного target, но мы рассмотрели все остальные, чтобы вы смогли взглянуть на картину немного шире. Основы рассмотрели, теперь будет настройка служб LInux.

Утилита systemctl

В Systemd есть специальный инструмент для управления службами в Linux - systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы. Синтаксис у утилиты такой:

$ systemctl опции команда служба служба.

Опции настраивают поведение программы, подробность вывода, команда - указывает что нужно сделать со службой, а служба, это та самая служба, которой мы собираемся управлять. В некоторых случаях утилита может использоваться без указания команды и службы.

Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:

А теперь основные опции:

Как видите, опции будут мало полезны и лучше обратить больше внимания на команды, с помощью них выполняются все действия.

Управление службами Linux

Теперь, когда вы уже знаете все основы, команды и параметры можно переходить к делу. Со всеми остальными тонкостями разберемся по пути. Сначала давайте посмотрим запущенные службы linux. Нас будут интересовать только программы, а не все эти дополнительные компоненты, поэтому воспользуемся опцией type:

systemctl list-units --type service

services

Команда отобразила все службы, которые известны systemd, они сейчас запущены или были запущены. Программа не пересматривает все файлы, поэтому будут показаны только те службы, к которым уже обращались. Состояние loaded - означает, что конфигурационный файл был успешно загружен, следующая колонка active - служба была запущена, а running или exited значит выполняется ли сейчас служба или она успешно завершила свою работу. Листать список можно кнопками вверх/вниз.

Следующая команда позволяет получить список служб linux, в который входят все службы, даже не запущенные, те, которые не запускались, но известны systemd, но это еще не все службы в системе:

systemctl list-units --type service -all

services1

Дальше больше. Вы можете отсортировать список служб systemctl по состоянию. Например, только выполняющиеся:

systemctl list-units --type service --state running

services2

Или те, которые завершились с ошибкой:

systemctl list-units --type service --state failed

service4

Для фильтрации можно брать любой показатель состояния из любой колонки. Другой командой мы можем посмотреть все файлы конфигурации служб на диске. Тут не будем фильтровать по типу, пусть программа покажет все:

Теперь отфильтруем только службы linux:

systemctl list-unit-files --type service

Здесь вы тоже можете использовать фильтры по состоянию. Теперь вы знаете как посмотреть запущенные службы linux, идем дальше.

Чтобы запустить службу используется команда start, например:

sudo systemctl start application.service

Причем расширение service можно опустить, оно и так подставляется по умолчанию. Если запуск прошел хорошо, программа ничего не выведет.

Остановить службу linux можно командой:

sudo systemctl stop application

Посмотреть состояние службы позволяет команда status:

sudo systemctl status application

services4

Здесь вы можете видеть, состояние running, exited, dead, failed и т д. А также несколько последних строчек вывода программы, которые очень помогут решить проблему с запуском если она возникнет.

Автозагрузка служб в systemd

Как вы знаете, systemd позволяет автоматически загружать службы при запуске системы по мере их надобности. Команда list-unit-files показывает добавлена ли служба в автозагрузку.

Вообще, здесь может быть несколько состояний - enabled - в автозагрузке, disabled - автозагрузка отключена, masked - служба скрыта и static - значит что служба в автозагрузке, но вы не можете ее отключить.

Поэтому чтобы получить список служб linux, запускаемых автоматически достаточно отфильтровать ее вывод по состоянию:

systemctl list-unit-files --state enabled

services5

services6

Все службы, запускаемые по умолчанию. Можете также посмотреть службы static. Чтобы добавить службу в автозагрузку linux используйте команду enable:

sudo systemctl enable application

services7

А для того чтобы убрать ее из автозагрузки:

sudo systemctl disable applciation

services8

Также, вы можете посмотреть разрешена ли сейчас автозагрзука для службы:

sudo systemctl is-enabled application

services9

Утилита просто выведет состояние enabled, disabled или static.

Выводы

Теперь настройка служб Linux не вызовет у вас проблем. Много чего мы упустили, systemd - очень большая, сложная и многофункциональная система, которую не охватить в одной статье. Но и также очень сложно понять. Но я думаю, что все, что касается управления службами Linux мы разобрали. Если у вас остались вопросы, спрашивайте в комментариях!

Всем доброго дня и с наступающим.
Значить ситуевина.
Сижу и грызу minidlna на десктопе.

Установил, конфиг отредактировал. Но сервис нормально стартует только так:

Чтобы уж наверняка

И все равно, перезагружаюсь и


Пока не введу заветную команду.
Как поставить на автоматический старт? Мне сдается, что если minidlna поставлен из репозитория,
apt обязан распихать ссылки на старт/стоп скрипта инициализации на
соответствующие уровни выполнения автоматом.
Так что rc.local в данном случае не нужен.
Немного недоумеваю по поводу chkconfig, так как, насколько помню, это атрибут
RedHat-подобных.
Взгляните еще на /etc/default/minidlna
Пока не введу заветную команду.
Как поставить на автоматический старт?
Давайте расставим точки над и. Во первых 2012 уже наступил. Во вторых в Debian/Ubuntu нужно использовать
В третих посмотрите на 2 вещи: 1. Существует ли в /etc/rc2.d ссылка на заветный скрипт 2. Проверьте является ли скрипт запуска исполняемый.
Ну а так на вскидку могу сказать, что скрипт запуска какой-то странный, не по стандарту сделанный, его проще в /etc/rc.local прописать, чем пытаться добавлять в системные уровни работы.
Сейчас под рукой aptosid. Ничего после установки minidlna не настраивал. После перезагрузки:
Мне сдается, что если minidlna поставлен из репозитория,
apt обязан распихать ссылки на старт/стоп скрипта инициализации на
соответствующие уровни выполнения автоматом.

Да, из репозитариев. Так оно - должен - но не работает ((

Давайте расставим точки над и. Во первых 2012 уже наступил. Во вторых в Debian/Ubuntu нужно использовать
В третих посмотрите на 2 вещи: 1. Существует ли в /etc/rc2.d ссылка на заветный скрипт 2. Проверьте является ли скрипт запуска исполняемый.
Ну а так на вскидку могу сказать, что скрипт запуска какой-то странный, не по стандарту сделанный, его проще в /etc/rc.local прописать, чем пытаться добавлять в системные уровни работы. Давайте так. Я сейчас спьяни сразу не смогу развернуть систему максимально
приближенную к Вашей.
Но сделаю это непременно буквально завтра.
Правда, Ваш потенциал в этом и не нуждается. Поскольку Вы и сами в состоянии порешать такие
незначительные вопросы.
Good Luck!
P.S.
Я уже привел пример (благополучного функционирования нужного Вам софта) из собственной консоли. Правда, Ваш потенциал в этом и не нуждается. Поскольку Вы и сами в состоянии порешать такие
незначительные вопросы.

Я уже перебрал все возможные из моего потенциала варианты. Осталься только вариант - вручную в терминале набирать после запуска

И только в этом случае сервис запускается..

P.S.
Я уже привел пример (благополучного функционирования нужного Вам софта) из собственной консоли.

Так он у меня итак благополучно функционирует. Он просто не запускается в автоматическом режиме при старте системы.

не запускается в автоматическом режиме при старте системы Давайте расставим точки над и. Во первых 2012 уже наступил. Во вторых в Debian/Ubuntu нужно использовать
В третих посмотрите на 2 вещи: 1. Существует ли в /etc/rc2.d ссылка на заветный скрипт 2. Проверьте является ли скрипт запуска исполняемый.
Ну а так на вскидку могу сказать, что скрипт запуска какой-то странный, не по стандарту сделанный, его проще в /etc/rc.local прописать, чем пытаться добавлять в системные уровни работы.

Не работает потому что корявый файл запуска. Лучше постмотрите есть ли ссылки на файл запуска, а не просто файлы


Systemd в Linux. Команда systemctl

Сервисы или службы — это программы, которые работают в системе Linux в фоновом режиме. Обычно они запускаются при загрузке системы. Большинство сервисов необходимы для полноценной работы системы, то есть они являются своего рода кирпичиками, из которых строится работающая система.

При запуске системы загружается целый ряд сервисов, которые включены для автозагрузки. Сервисы работают пока система запущена, и выгружаются при выключении системы.

Чаще всего в Linux дистрибутивах для инициализации сервисов используется демон Systemd. К Systemd-дистрибутивам относятся Ubuntu, Debian, Linux Mint, Fedora, openSUSE, Solus и другие.

Есть дистрибутивы, которые не используют Systemd. Вместо Systemd могут использоваться такие системы инициализации, как Upstart, SysV.

В качестве примеров сервисов можно привести: веб-сервер Apache, Network Manager, файрвол Ufw и другие.

Для управления сервисами (Systemd) используется утилита systemctl . Ниже мы рассмотрим основные команды данной утилиты.

Список сервисов

Чтобы просмотреть список всех сервисов можно воспользоваться командой:

Список всех сервисов Systemd

Данная команда пробегает по алфавитному списку всех доступных сервисов и выполняет для них команду status.

В выводе команды используются следующие обозначения:

  • [ + ] - запущенный сервис.
  • [ - ] - остановленный сервис.
  • [ ? ] - для данного сервиса отсутствует команда status.

Запуск сервиса

Для запуска сервиса используется команда systemctl start имя_сервиса

Останов сервиса

Для остановки сервиса используется команда systemctl stop имя_сервиса

Перезапуск сервиса

Перезапуск сервиса выполняется командой systemctl restart имя_сервиса

Обычно перезапуск конкретного сервиса требуется, когда были изменены настройки данного сервиса.

Автозагрузка сервисов

Чтобы сервис стартовал (загружался) при запуске системы, его нужно включить в список автозагрузки. Для этого используется команда systemctl enable имя_сервиса

Чтобы включить сервис в автозапуск и сразу же запустить используется команда:

Чтобы удалить сервис из автозагрузки, используется команда systemctl disable имя_сервиса

systemctl enable disable

Статус сервиса

Для вывода информации (статуса) сервиса используется команда systemctl status имя_сервиса

systemctl status

Чтобы проверить, запущен ли в данный момент сервис, используется команда systemctl is-active имя_сервиса

Чтобы проверить, включен ли сервис для автозапуска при загрузке системы, используется команда systemctl is-enabled имя_сервиса

systemctl is-enabled is-active

Заключение

Мы рассмотрели наиболее часто используемые команды утилиты systemctl. Полный список команд и опций утилиты systemctl можно получить, выполнив:

Читайте также: