Linux как узнать систему инициализации

Как посмотреть, какой демон инициализации и какая оконная система в linux?

Возможно ли «в общем» это посмотреть какой-нибудь командой? Как например мы смотрим релиз lsb_release -a
Или же надо смотреть по каталогам? Если нет скажем inittab -значит выискиваем другие файлы, которые будут относится к «upstart» или «systemd»? И по оконной системе. Как вообще понять «иксы» стоят или что-то новое типа Wayland. Столкнулся с этими вопросами т.к. хотел отключить x-server в ubuntu и натыкался на это. (Если кто подскажет как отключить графику в ubuntu тоже буду рад) Именно отключить что бы включать по команде в будущем.

leahch

В ubuntu за инициализацию графики по умолчанию отвечает lightdm. Он инициализирует xserver (xorg) и выводит окно приглашения с вводом палоля и/или запускает сессию пользователя.
Чтобы его погасить, достаточно выкинуть его из автозагрузки командой sudo dpkg-reconfigure lightdm Или переименовать файл /etc/init/lightdm.conf например в lightdm.conf.disabled

После этого просто входить в систему, а графику запускать по команде startx .

xotkot

текущую систему инициализации можно посмотреть выполнив команду:
% init —version
в выводе первая строчка будет содержать нужную информацию

> «хотел отключить x-server в ubuntu. »
если я правильно понял то тебе нужно вот это

Источник

Система инициализации в Unix/Linux

Иногда интересно какая же инициализация используется на сервере и в моей статье «Система инициализации в Unix/Linux» я расскажу как можно узнать какая система инициализации используется на сервере.

Основные системы инициализации:

  • sysvinit — Стиль SysVinit существовал еще со времен SystemV, которая была разработана еще в 1983 году. Это установило стандарт инициализации POSIX систем.
  • upstart — система инициализации ОС, которая управляет запуском демонов в течение загрузки системы, их остановку, а также управляет ими во время работы системы. Первоначально была разработана для дистрибутива Ubuntu, но затем стала использоваться и в других дистрибутивах Linux, например в Fedora (впоследствии была заменена systemd), как замена UNIX System V init.
  • systemd — это системный менеджер, (демон для инициализации других демонов в Linux), который пришел и почти заменил SysV. Основное отличие — распределенный запуск служб в процессе загрузки системы, что позволяло существенно ускорить запуск операционной системы.
  • launchd — система инциализации системы с открытым исходным кодом, используемая в ОС Mac OS X. Процесс имеет PID 1 и занимается тем, что запускает другие процессы и перезапускает их в случае сбоя, то есть выполняет функции init UNIX и Linux (в новых версиях Linux осуществляется переход на systemd).
Читайте также:  Usb linux with persistence

Команды по системам инициализации в Unix/Linux ОС:

Система инициализации в Unix/Linux

Существует несколько способов проверить это, сейчас я покажу как это сделать.

-=== СПОСОБ 1 — проверка PID процессов==-

Например, Ubuntu до версии 14 использовала систему инициализацию Upstart чтобы проверить это, выполните:

Например, Ubuntu 16 и CentOS 7 использовала систему инициализацию SystemD чтобы проверить это, выполните:

Или если используется Ubuntu 16, можно выполнить:

$ (ps -eo "ppid,args" 2>/dev/null || echo "ps call error") | awk 'NR==1 || $1==1'

Или (если чтобы было красиво):

Например, CentOS 6 использовала систему инициализацию Upstart, но с init процессом и чтобы проверить это, выполните:

-=== СПОСОБ 2 — проверка файлов==-

Запускаем следующую команду:

Если на сервере используется init инициализация, то она отобразится при выводе. В противном случае — скажет что такой команды нет.

Вот вам еще довольно стоящий пример:

# strings /sbin/init | grep -q "/lib/systemd" && echo SYSTEMD # strings /sbin/init | grep -q "upstart" && echo UPSTART # strings /sbin/init | grep -q "sysvinit" && echo SYSVINIT
$ strings /sbin/init | awk 'match($0, /(upstart|systemd|sysvinit)/) < print toupper(substr($0, RSTART, RLENGTH));exit; >'

-=== СПОСОБ 3 — с помощью ФС==-

Можно запустить следующую команду:

Команда что выше, проверяет exe симлинку в папке /proc/1. А собственно «1» – это PID 1-го процесса.

-=== СПОСОБ 4 — с помощью готового bash скрипта==-

#!/usr/bin/env bash # init process is pid 1 INIT=`ls -l /proc/1/exe` if [[ $INIT == *"upstart"* ]]; then SYSTEMINITDAEMON=upstart elif [[ $INIT == *"systemd"* ]]; then SYSTEMINITDAEMON=systemd elif [[ $INIT == *"/sbin/init"* ]]; then INIT=`/sbin/init --version` if [[ $INIT == *"upstart"* ]]; then SYSTEMINITDAEMON=upstart elif [[ $INIT == *"systemd"* ]]; then SYSTEMINITDAEMON=systemd fi fi if [ -z "$SYSTEMINITDAEMON" ]; then echo "WARNING: Unknown distribution, assuming defaults - this may fail." >&2 else echo "Init system discovered: $SYSTEMINITDAEMON" fi

Можно добавить прав на исполнение:

Читайте также:  Linux run file as root

-=== СПОСОБ 5 — с помощью пакетного менеджера==-

Если используете centOS/RedHat/Fedora/Suse, то можно выполнить:

Если используете Debian/Ubuntu/Mint/др, то можно выполнить:

-=== СПОСОБ 6 — с помощью lsof==-

$ ps -eaf| grep -E "[s]ystemd|init|[u]pstart"

-=== СПОСОБ 7 — с помощью ls и which==-

Вот и все. Если имеются другие примеры проверки инициализации, пишите в комментариях. Тема «Система инициализации в Unix/Linux» завершена.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Рубрики

  • Arch Linux (167)
  • Commands (36)
  • Debian’s (635)
    • Administration tools Ubuntu (37)
    • Backups Debian’s (7)
    • Database в Ubuntu (58)
    • Games (игры) (1)
    • Monitoring в Debian и Ubuntu (49)
    • Virtualization в Ubuntu / Debian/ Linux Mint (41)
      • Docker (22)
      • Kubernetes (6)
      • KVM (4)
      • OpenVZ (3)
      • Vagrant (5)
      • VirtualBox (6)
      • ArgoCD (1)
      • Concourse (1)
      • Gitlab (1)
      • Jenkinks (4)
      • Spinnaker (1)
      • Apache (32)
      • Cherokee (1)
      • FTP-services (5)
      • Lighttpd (1)
      • Nginx (26)
      • PHP (27)
      • Proxy для Debian’s (2)
      • Tomcat (4)
      • Панели управления в Ubuntu/Debian/Mint (24)
      • Установка и настройка почты на Ubuntu/Debian (12)
      • Хранилища (clouds) (2)
      • Administration tools freeBSD (19)
      • Database во FreeBSD (52)
      • Monitoring во freeBSD (37)
      • Virtualization во FreeBSD (22)
      • VoIP (1)
      • Установка Web сервисов (91)
      • Установка и настройка почты (6)
      • Установка из ports (пакетов) (19)
      • Установка из sorce code (исходников) (23)
      • Непрерывная интеграция (CI) (27)
      • Database в MacOS (36)
      • Monitoring в Mac OS (31)
      • Security (безопасность) (12)
      • Virtualization в Mac OS (30)
        • Docker (19)
        • Kubernetes (6)
        • Vagrant (5)
        • VirtualBox (5)
        • ArgoCD (1)
        • CircleCI (1)
        • Concourse (1)
        • Gitlab (1)
        • Jenkinks (4)
        • Spinnaker (1)
        • Administration tools CentOS (49)
        • Backups RPM’s (4)
        • Database в CentOS (68)
        • Monitoring в CentOS (67)
        • Virtualization в CentOS/ Red Hat/ Fedora (42)
          • Docker (23)
          • Kubernetes (6)
          • KVM (5)
          • OpenVZ (2)
          • Vagrant (5)
          • VirtualBox (6)
          • VMWare (3)
          • ArgoCD (1)
          • Concourse (1)
          • Gitlab (1)
          • Jenkinks (4)
          • Spinnaker (1)
          • Apache (35)
          • Cherokee (1)
          • DNS (3)
          • FTP (10)
          • Nginx (33)
          • PHP (34)
          • Proxy для RedHat’s (2)
          • Tomcat (2)
          • Voice (2)
          • Панели управления в CentOS/Red Hat/Fedora (27)
          • Прокси сервер на CentOS/RHEL/Fedora (4)
          • Установка и настройка почты на CentOS/RHEL/Fedora (14)
          • Хранилища (clouds) (1)

          соц сети

          Unix-Linux- в примерах

          Unix-Linux- в примерах

          Unix-Linux- в примерах

          Архив новостей

          Свежие записи

          Свежие комментарии

          • Глеб к записи Установка Adobe Flash Player в Debian/Ubuntu/Mint
          • Максим к записи Заблокировать User Agents используя Nginx
          • Денис к записи Как включить EPEL репозиторий на CentOS
          • Гость к записи Закомментировать/Раскомментировать строки vi/vim в Unix/Linux
          • Sergey к записи Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint

          Источник

          Какая система инициализации используется в данный момент?

          Насколько я понял upstart, программа, запускающая все остальные программы в системе, использует скрипты в /etc/init . В то время как её аналог systemd использует для запуска программ скрипты из /etc/init.d . Но у меня есть две этих папки /etc/init и /etc/init.d . В каждой из них есть скрипт запуска nginx. Они отличаются содержимым. Так вряд ли было бы, будь у них одинаковый функционал. Как определить, какая служба используется для управления процессами: Upstart, systemd, стандартный init?

          init.d — это вообще для старого sysvinit и используется для обратной совместимости и в upstart, и в systemd

          @MishaPolitaev просто init, что то очень нестандартное. Видел где то такой каталог, но к загрузке системы он отношения не имел. Так что init.d лучше смотрите. И еще в rc.d (rc.3 и т.п.), если они есть лежат ссылки на все, что запускается.

          2 ответа 2

          sysvinit и прочие пришедшие ему на замену системы инициализации unix-подобных операционных систем могут присутствовать в отдельно взятой установке одновременно.

          какой первый процесс запустит программа, выполняющая функции ядра операционной системы, после собственной загрузки и инициализации, «того и тапки».

          если эти функции исполняет программа linux, то по умолчанию она запускает программу/скрипт, находящийся в файле /sbin/init . данное поведение можно переопределить, передав параметр загрузки init=/путь/к/файлу . узнать, передан ли такой параметр, несложно:

          лишь по одному «внешнему виду» файла /sbin/init определить, какой именно из систем инициализации он принадлежит, затруднительно. разве что он является символической ссылкой на файл с более «выразительным» именем. например:

          $ ls -l /sbin/init lrwxrwxrwx 1 root root 20 Aug 29 18:45 /sbin/init -> /lib/systemd/systemd 

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

          $ dpkg -S /sbin/init $ rpm -qf /sbin/init $ equery belongs /sbin/init $ pacman -Qo /sbin/init . 

          Источник

Оцените статью
Adblock
detector