systemd е набор от основни градивни елементи за Linux системи. Той предоставя мениджър на система и услуги, който изпълнява и стартира останалата част от системата като PID 1.
systemd предоставя агресивни възможности за паралелизация, използва сокети и активация на D-Bus за стартиране на услуги, осигурява стартиране на демони при поискване, използва Linux контролни групи за проследяване на процеси, поддържа монтажи и точки за автоматично монтиране и имплементира добре проектирана логика за контрол на услуги, базирана на зависимост от транзакции. systemd поддържа SysV и LSB init скриптове и може да замени sysvinit.
Други секции включват лог демони, помощни програми за контрол на основни системни конфигурации като имена на хостове, дати, локации, поддържане на списък с влезли потребители и изпълнение на контейнери и виртуални машини, системни акаунти, директории по време на изпълнение и настройки, както и управление на конфигурации на демони за прости мрежи, синхронизация на времето в мрежата, препращане на логове и разрешаване на имена.
Конфигурационният файл systemd съществува в следните три папки:
/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。
/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。
/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。 Преглед:
Профил на единицата
Единичен файл в systemd е файл, който кодира информация за различните единици, които systemd може да управлява, включително услуги, сокети, устройства и др. Това ръководство се фокусира върху услугите, в който случай unit файлът, с който работим, е .service файл. Конфигурационният файл на устройството varnish.service съдържа информация за това как systemd трябва да изпълнява, наблюдава и управлява varnish демона.
Блокът [Единица] обикновено е първият блок на конфигурационния файл и се използва за дефиниране на метаданните на Единицата и как тя се отнася към другите Единици. Основните му области са следните.
- Описание: Кратко описание
- Документация: Адресът на документа
- Изисква: Други единици, от които зависи текущото устройство, и ако не работят, текущото устройство няма да стартира
- Желания: Други единици, които работят с текущата единица, ако не работят, текущата единица няма да се откаже да стартира
- BindsTo: Подобно на Requires, той определя единица, която кара текущото устройство да спре да работи, ако излезе
- Преди: Ако Единицата, посочена в това поле, също трябва да бъде стартирана, тя трябва да бъде стартирана след текущата Единица
- След: Ако Единицата, посочена в това поле, също трябва да бъде стартирана, тя трябва да бъде стартирана преди текущата Единица
- Конфликти: Посочената тук единица не може да работи едновременно с текущата единица
- Условие... : Условията, които трябва да бъдат изпълнени, за да работи текущото устройство, иначе няма да работи
- Отстоявам... : Условията, които трябва да бъдат изпълнени, за да работи текущото устройство, в противен случай ще бъде докладвана повредата при стартиране
[Инсталация] обикновено е последният блок от конфигурационния файл, който определя как да се стартира и дали да се стартира. Основните му области са следните.
- WantedBy: Стойността ѝ е една или повече Targets, а когато текущата единица е активна (enable), символичната връзка се поставя в поддиректория под директорията /etc/systemd/system с суфикса Target name + .wants
- RequiredBy: Стойността му е една или повече Цели, а когато текущата единица е активна, символичната връзка се поставя в поддиректория под директорията /etc/systemd/system с суфикс Target name + .required.
- Псевдоним: Псевдонимът, който текущата единица може да използва, за да започне
- Също така: Когато текущото устройство се активира, други единици ще бъдат активирани едновременно
Блокът [Service] се използва за конфигуриране на Service, като само единиците от типа Service имат този блок. Основните му области са следните.
- Тип: Определя поведението на процеса при стартиране. Той има следните стойности.
- Type=simple: Стойността по подразбиране, изпълнете командата, зададена от ExecStart, за стартиране на основния процес
- type=forking: Fork създава дъщерен процес от родителския процес, който ще излезе веднага след създаването
- Type=oneshot: Еднократен процес, Systemd ще изчака текущата услуга да излезе, преди да продължи изпълнението
- Type=dbus: Настоящата услуга започва чрез D-Bus
- type=notify: Когато текущата услуга бъде стартирана, Systemd ще бъде уведомен и ще продължи изпълнението
- type=idle: Текущата услуга ще се изпълнява само ако се изпълняват други задачи
- ExecStart: Командата за стартиране на текущата услуга
- ExecStartPre: Командата, изпълнена преди стартиране на текущата услуга
- ExecStartPost: Командата, изпълнена след стартиране на текущата услуга
- ExecReload: Командата, която се изпълнява при рестартиране на текущата услуга
- ExecStop: Командата, която се изпълнява, когато текущата услуга бъде спряна
- ExecStopPost: Спрете командата, която се изпълнява, когато е изпълнена
- RestartSec: Броят секунди между автоматичното рестартиране на текущата услуга
- Restart: Определя обстоятелствата, при които Systemd автоматично ще рестартира текущата услуга, с възможни стойности като винаги, при успех, при отказ, на ненормално, при прекъсване, на наблюдение
- TimeoutSec: Определя броя секунди, през които Systemd чака преди да прекрати текущата услуга
- Среда: Задайте променливата на околната среда
Инструмент за управление Systemctl
Управлението на програми в CentOS се извършва основно от инструмента systemctl.
Услуга за стартиране:
systemctl start name.service
Прекратете услугата:
systemctl stop name.service
Услуга за рестартиране:
systemctl restart name.service
Статус на гледане:
systemctl статус name.service
Условно рестартиране:
Ако услугата е била стартирана по-рано, тя ще бъде рестартирана, а ако не е стартирана, няма да се оперира
systemctl try-restart name.service
Презареди или рестартирай:
Първо презаредете и ако презареждането не е успешно, рестартирайте
systemctl reload-or-restart name.service
Презареждане или условен рестарт:
systemctl reload-or-try-restart name.service
Задава дали услугата може да бъде зададена от потребителя, за да стартира състоянието
systemctl демаскиране на име.service
Systemctl mask name.service е забранена
Вижте текущия статус на активиране на услугата:
Стойността за връщане на статуса на командата "service is started" е 0. Стойността за връщане на статуса на командата, която не е стартирана, е не-0.
systemctl is-active name.service
Вижте всички активирани услуги:
-t Определя типа показвана единица.
--всички показват по-подробен списък с информация.
-еквивалент --всички
Systemctl списъчни единици
SystemCTL списък-единици -T услуга
systemctl списък-единици -t обслужване -a
Вижте всички услуги:
systemctl списък-единици -a
Вижте всички статуси на услуги:
systemctl list-unit-files
-a 、--всички : Вижте статуса на всички услуги
-t 、--type: Определя типа единица, която трябва да се разглежда
loaded: Конфигурационният файл е зареден, зареден в паметта
активни(текущи): Изпълнения, които се обработват непрекъснато един или повече пъти
активен(exited): Еднократната конфигурация е успешно завършена
активен (чакащ): Бягане, чакане на събитие
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活
Използва се за изброяване на нива на работа услугата да бъде активирана и деактивирана
Дали /etc/systemd/system/*.wants/sshd.service
systemctl list-unit-files --тип target --all
За да настроя услугата да не стартира:
systemctl Деактивира Service Name Unit
Проверете дали услугата е стартирана и стартирана:
systemctl is-enabled name.service
Разгледайте зависимостите на услугите:
systemctl list-dependencies name.service systemctl list-depebdencies
Обслужване на тежки товари:
systemctl daemon-reload
Прекратете процеса:
Име на процеса за убиване на systemctl
Ресурси:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
|