- Как посмотреть, какой демон инициализации и какая оконная система в linux?
- Система инициализации в Unix/Linux
- Система инициализации в Unix/Linux
- Добавить комментарий Отменить ответ
- Рубрики
- соц сети
- Архив новостей
- Свежие записи
- Свежие комментарии
- Какая система инициализации используется в данный момент?
- 2 ответа 2
Как посмотреть, какой демон инициализации и какая оконная система в linux?
Возможно ли «в общем» это посмотреть какой-нибудь командой? Как например мы смотрим релиз lsb_release -a
Или же надо смотреть по каталогам? Если нет скажем inittab -значит выискиваем другие файлы, которые будут относится к «upstart» или «systemd»? И по оконной системе. Как вообще понять «иксы» стоят или что-то новое типа Wayland. Столкнулся с этими вопросами т.к. хотел отключить x-server в ubuntu и натыкался на это. (Если кто подскажет как отключить графику в ubuntu тоже буду рад) Именно отключить что бы включать по команде в будущем.
В ubuntu за инициализацию графики по умолчанию отвечает lightdm. Он инициализирует xserver (xorg) и выводит окно приглашения с вводом палоля и/или запускает сессию пользователя.
Чтобы его погасить, достаточно выкинуть его из автозагрузки командой sudo dpkg-reconfigure lightdm Или переименовать файл /etc/init/lightdm.conf например в lightdm.conf.disabled
После этого просто входить в систему, а графику запускать по команде startx .
текущую систему инициализации можно посмотреть выполнив команду:
% 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).
Команды по системам инициализации в 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
Можно добавить прав на исполнение:
-=== СПОСОБ 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)
соц сети
Архив новостей
Свежие записи
Свежие комментарии
- Глеб к записи Установка 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 .