1

Леннарт Поттеринг (Lennart Poettering) представил выпуск системного менеджера systemd 217, который сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux, одобрен переход дистрибутивов Debian и Ubuntu по умолчанию на systemd.

Наиболее существенные изменения:

  • В состав включён демон systemd-consoled с реализацией эмулятора терминала для замены штатных консолей (kernel-console, linux-console), при сборке ядра без поддержки виртуальных терминалов (CONFIG_VT=n), т.е. позволяющий использовать kmscon в качестве реализации консоли в пространстве пользователя. В настоящее время systemd-consoled позиционируется как экспериментальная возможность, предоставляющая по одному терминалу для пользователей, в настройках которых указано "Desktop=systemd-console";

  • По умолчанию включен алгоритм управления очередями ожидающих отправки пакетов fq_codel (Fair Queuing Controlled Delay), разработанный в рамках инициативы по борьбе с негативным влиянием промежуточной буферизации пакетов (Bufferbloat) сетевым оборудованием. В sysctl.d/ добавлен вызов "net.core.default_qdisc = fq_codel";

  • Реализовано определение контейнеров Docker в качестве отдельного типа виртуализации;

  • Поддержка формата базы активных учётных записей UNIX utmp теперь может быть активирована на этапе сборки для поддержки устаревших систем;

  • Добавлена обработка опции "rescue", указываемой при загрузке ядра Linux. Если данная опция установлена, то system будет загружен в режиме защиты от сбоев (rescue.target). Ранее вызов данного режима требовал нажатия 1 или указания опции ядра "systemd.unit=rescue.target";

  • Добавлена обработка опции командной строки ядра "mount.usr=", "mount.usrflags=" и "mount.usrfstype=", которые обрабатываются по аналогии с опциями "root=", "rootflags=" и "rootfstype=", но для раздела /usr;

  • Добавлена поддержка нового сообщения D-Bus ALLOW_INTERACTIVE_AUTHORIZATION, позволяющего организовать процесс интерактивной авторизации с использованием PolicyKit при выполнении многих привилегированных операций, включая включение и выключение юнит-файлов;

  • В journalctl добавлены новые опции "-t/--identifier=" для выборки по идентификатору/тегу syslog и "--utc" для показа времени в GMT/UTC. Для отключения обрезания вывода по числу символов в строке теперь можно указать "-n/--lines=all";

  • Службы теперь могут заранее уведомлять управляющий процесс о предстоящем перезапуске (RELOADING=1) или прекращении работы (STOPPING=1), что позволяет отследить и показать внутреннее состояние подконтрольного процесса, а также избежать состояния гонки, когда процесс ещё полностью не завершился, но уже закрыл соединение D-Bus;

  • Пользовательские unit-ы теперь также могут загружаться из директории $XDG_RUNTIME_DIR/systemd/user/, что позволяет явно переопределить путь для ранее поддерживаемой директории /run/systemd/user;

  • Добавлена поддержка завершения работы или перезагрузки в случае истечения таймаута нахождения задания в очереди запуска (JobTimeoutAction= и JobTimeoutRebootArgument=). Подобная возможность может быть задействована например для перезапуска в случае зависания на этапе загрузки или ипрекращения работы при случайном включении ноутбука в сумке и остановившегося на этапе ввода пароля доступа к зашифрованным дисковым разделам. По умолчанию сейчас инициируется завершение работы при неполном выполнении basic.target в течение 15 минут;

  • Система управления пользовательскими сеансами systemd-logind теперь может быть настроена для обработки событий закрытия/открытия крышки ноутбука даже при подключении дополнительного монитора или подсоединения к док-станции (HandleLidSwitchDocked=);

  • В systemd-networkd добавлена возможность указания метрик маршрутизации для маршрутов, добавленных через DHCP;

  • Добавлена опция SELinuxContextFromNet=, позволяющая устанавливать контекст SELinux для сервисов активации по сокету на основе данных, предоставленных сетевым стеком;

  • Прекращена поддержка средств загрузки прошивок в пространстве пользоватея, в связи с чем версия минимально поддерживаемого ядра Linux повышена до выпуска 3.7;

  • Для udev-правил добавлена возможность удаления тегов для устройств при помощи опции TAG-="foobar";

  • Удалена реализация технологии readahead для заполнения дискового кэша при выполнении операций чтения, так как она во многих ситуациях не даёт ожидаемого выигрыша в производительности даже для НЖМД, а также бессмыслена для SSD-накопителей;

  • Протокол Password Agent добавлена поддержка запросов, при которых отображается пользовательский ввод, что полезно, например, для контроля ввода имени пользователя. Данный режим включается при запуске systemd-ask-password с опцией "--echo";

  • При наличии поддержки kdbus для сервисных юнитов теперь доступна опция BusPolicy=, позволяющая привязать все сервисные процессы к специальной более защищённой шине, к которой ограничен доступ других сервисов;

  • В утилите networkctl обеспечен показ файлов .network и .link, задействованных для определённого сетевого интерфейса;

  • В утилиту systemctl добавлена поддержка новых команд "add-wants" и "add-requires" для упрощения задействования в юнитах специфичных целей;

  • Удалена утилита "multi-seat-x", так как её функциональность теперь интегрирована в X Server 1.16;

  • В команду "udevadm hwdb --update" добавлена поддержка опции "--usr" для размещения перестроенной базы оборудования в разделе /usr, вместо /etc;

  • В .time-юниты добавлена возможность указания строкового определения периодов "semi-annually", "quarterly" и "minutely" в дополнение к ранее доступным "anually" и "hourly".



Источник: http://www.opennet.ru/opennews/art.shtml?num=40960

2

Ничигонепонял.

verg пишет:

демон systemd-consoled с реализацией эмулятора терминала для замены штатных консолей

Но все равно ересь и не нужно))

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

3

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

4 (29.10.2014 16:08:00 отредактировано 1000Mhz)

Vascom пишет:

подготовка к выкидыванию из ядра левых функций вроде терминалов

С такой точки зрения - вроде и правильно. Но тогда это уже не "система инициализации", а.. эээ.. как тогда вы назовете этот компонент?
С другой стороны ключевой вопрос даже не в этом, а в том, как это будет сделано? А здесь я старине Леннарту ну ничуть не доверяю.

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

5

Само слово "система" уже подразумевает сложное взаимодействие многих компонент. И по определению результат этого взаимодействия больше, чем просто сумма компонент, входящих в систему.

Но можно пойти и дальше. В Summary к пакету systemd написано: A System and Service Manager.
systemd-consoled - это просто ещё один демон, который можно запустить с помощью systemd (а можно и не запускать). Это же не монолит!!!

6

Vascom пишет:

Это же не монолит!!!

- хвала аллаху, что не.

Vascom пишет:

systemd-consoled - это просто ещё один демон, который можно запустить с помощью systemd (а можно и не запускать)

что-то вот тут такое.. нет, это не "просто еще один демон", т. к. его можно запустить только с помощью systemd. А для запуска просто-демона достаточно чего? правильно, только sh.

Оффтопик: а вас не Федора случайно?  ab

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

7 (29.10.2014 16:24:49 отредактировано Vascom)

Кто мешает портировать под другие системы запуска?
Не нравится - не пользуйтесь. Но если не можете ничего изменить в своём дистрибутиве, то не надо на Федору бочку катить. Ругайте ваших маинтейнеров.

А помимо запуска через sh есть ещё актвация через сокеты и многое другое востребованное индустрией. Так что не надо думать, что система инициализации это метод автостарта bash-скриптиков.

8

Вот именно "метод автостарта bash-скриптиков" бывает чаще всего и нужен. Впрочем, действительно - никто же не запрещает создать свою параллельную систему инициализации. Это даже мысль!

P. S. Не качу никаких бочек, у самого OpenSUSE.

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

9

Боюсь ваше "чаще всего" может сильно отличаться от мирового.

10

Vascom, и уж тем более, от вашего с поттерингом.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

11

От моего - согласен. А вот системд от Поттеринга уже во многих дистрибутивах и очень востребовано.
И только yars в бессильной злобе поливает меня грязью ab

12

Vascom пишет:

и очень востребовано.

Скорее очень навязываемо.

13

Есть доказательства навязывания?

14

Vascom, реклама ab

Linux Mint 19.3 Mate Edition
Windows 7

15

Vascom, есть, иначе, в -надцатый раз повторяю, этого поделия не было нигде кроме федоры. И не надо мне в -надцатый раз доказывать, что переход был в добровольном порядке. Решение о слиянии кодовой базы systemd и udev продиктовано исключительно политическими и причинами, но не техническими. Единственный не-rpm дистрибутив, по собственной воле перешедший на systemd - Arch. А вот Debian и основанные на нем - вынуждены.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

16

yars пишет:

этого поделия не было нигде кроме федоры

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

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

17 (30.10.2014 19:37:55 отредактировано dyasny)

yars пишет:

Vascom, есть, иначе, в -надцатый раз повторяю, этого поделия не было нигде кроме федоры. И не надо мне в -надцатый раз доказывать, что переход был в добровольном порядке. Решение о слиянии кодовой базы systemd и udev продиктовано исключительно политическими и причинами, но не техническими. Единственный не-rpm дистрибутив, по собственной воле перешедший на systemd - Arch. А вот Debian и основанные на нем - вынуждены.

злые дяди в красных шляпах пришли с распечатанными на 3д принтерах автоматами в руках, и заставили всех бедняжек перейти на systemd. Все именно так и было.



Просто мейнтейнеры, те кто практичен а не фанатичен, прекрасно понимают что без возможностей systemd, их дистры окажутся далеко позади Fedora/RHEL на серверных установках, а пока что именно серверы и линукс на них, содержит зоопарк дистров в живом состоянии

18

Как я уже и говорил, вы просто не имеете никакого влияния на свои дистрибутивы.

19

А вы имеете?

«Я устал, я ухожу.»

20

Имею.
Например недавно отстоял классический внешний вид программы top по умолчанию. Вот https://bugzilla.redhat.com/show_bug.cgi?id=1153049
И являюсь маинтейнером нескольких пакетов в Fedora.

21

И ещё для тех, кто по прежнему считает systemd сложнее sysVinit http://forkfedora.org/
/usr/lib/systemd/system/sendmail.service

[Unit]
Description=Sendmail Mail Transport Agent
After=syslog.target network.target
Conflicts=postfix.service exim.service
Wants=sm-client.service

[Service]
Type=forking
PIDFile=/run/sendmail.pid
Environment=SENDMAIL_OPTS=-q1h
EnvironmentFile=-/etc/sysconfig/sendmail
ExecStartPre=-/etc/mail/make
ExecStartPre=-/etc/mail/make aliases
ExecStart=/usr/sbin/sendmail -bd $SENDMAIL_OPTS $SENDMAIL_OPTARG

[Install]
WantedBy=multi-user.target
Also=sm-client.service

/etc/rc.d/init.d/sendmail

#!/bin/bash
#
# sendmail      This shell script takes care of starting and stopping
#               sendmail.
#
# chkconfig: 2345 80 30
# description: Sendmail is a Mail Transport Agent, which is the program \
#              that moves mail from one machine to another.
# processname: sendmail
# config: /etc/mail/sendmail.cf
# pidfile: /var/run/sendmail.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network

# Source sendmail configureation.
if [ -f /etc/sysconfig/sendmail ] ; then
    . /etc/sysconfig/sendmail
else
    DAEMON=no
    QUEUE=1h
fi
[ -z "$SMQUEUE" ] && SMQUEUE="$QUEUE"
[ -z "$SMQUEUE" ] && SMQUEUE=1h

# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0

[ -f /usr/sbin/sendmail ] || exit 0

RETVAL=0
prog="sendmail"

start() {
    # Start daemons.

    echo -n $"Starting $prog: "
    if test -x /usr/bin/make -a -f /etc/mail/Makefile ; then
      make all -C /etc/mail -s &rt; /dev/null
    else
      for i in virtusertable access domaintable mailertable ; do
        if [ -f /etc/mail/$i ] ; then
        makemap hash /etc/mail/$i < /etc/mail/$i
        fi
      done
    fi
    /usr/bin/newaliases &rt; /dev/null 2&rt;&1
    daemon /usr/sbin/sendmail $([ "x$DAEMON" = xyes ] && echo -bd) \
            $([ -n "$QUEUE" ] && echo -q$QUEUE) $SENDMAIL_OPTARG
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail

    if ! test -f /var/run/sm-client.pid ; then
    echo -n $"Starting sm-client: "
    touch /var/run/sm-client.pid
    chown smmsp:smmsp /var/run/sm-client.pid
    if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
        /sbin/restorecon /var/run/sm-client.pid
    fi
    daemon --check sm-client /usr/sbin/sendmail -L sm-msp-queue -Ac \
            -q$SMQUEUE $SENDMAIL_OPTARG
    RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sm-client
        fi

    return $RETVAL
}

reload() {
    # Stop daemons.
        echo -n $"reloading $prog: "
    /usr/bin/newaliases &rt; /dev/null 2&rt;&1
    if [ -x /usr/bin/make -a -f /etc/mail/Makefile ]; then
      make all -C /etc/mail -s &rt; /dev/null
    else
      for i in virtusertable access domaintable mailertable ; do
        if [ -f /etc/mail/$i ] ; then
        makemap hash /etc/mail/$i < /etc/mail/$i
        fi
      done
    fi
    daemon /usr/sbin/sendmail $([ "x$DAEMON" = xyes ] && echo -bd) \
        $([ -n "$QUEUE" ] && echo -q$QUEUE)
    RETVAL=$?
    killproc sendmail -HUP
    RETVAL=$?
    echo
    if [ $RETVAL -eq 0 -a -f /var/run/sm-client.pid ]; then
        echo -n $"reloading sm-client: "
        killproc sm-client -HUP
        RETVAL=$?
        echo
    fi
    return $RETVAL
}

stop() {
    # Stop daemons.
    if test -f /var/run/sm-client.pid ; then
        echo -n $"Shutting down sm-client: "
        killproc sm-client
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/run/sm-client.pid
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sm-client
    fi
    echo -n $"Shutting down $prog: "
    killproc sendmail
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail
    return $RETVAL
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload)
    reload
    RETVAL=$?
    ;;
  restart)
    stop
    start
    RETVAL=$?
    ;;
  condrestart)
    if [ -f /var/lock/subsys/sendmail ]; then
        stop
        start
        RETVAL=$?
    fi
    ;;
  status)
    status sendmail
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|condrestart|status}"
    exit 1
esac

exit $RETVAL

22

он не сложнее, это просто новый подход. git, если бы его пихал не Линус а Леннарт, тоже бы все ненавидели.

23

dyasny пишет:

если бы его пихал не Линус а Леннарт, тоже бы все ненавидели

1. А чего вы хотели?- Это же смена парадигмы практически.
2. Ненавидят только фанатики, которые громче всего и орут в интернетах.

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

24

Ну и 3. Леннарт действительно не Линус, и такое решение, как переход на сабж, непросчитываемо - что это принесет в будущем никто не знает.

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

25

1000Mhz пишет:

1. А чего вы хотели?- Это же смена парадигмы практически.

да какая тут смена? повсеместный переход на CM - это смена парадигмы, и все счастливы. внедрение devops - смена парадигмы, но все рады. Облака - офигенная смена парадигнмы - и ничего, все выстроились в очередь. А тут система инициализации которая отменяет полотнища ненужных скриптов, и все, вопли на весь мир.

1000Mhz пишет:

2. Ненавидят только фанатики, которые громче всего и орут в интернетах.

это точно

1000Mhz пишет:

Ну и 3. Леннарт действительно не Линус, и такое решение, как переход на сабж, непросчитываемо - что это принесет в будущем никто не знает.

как и любое решение, но тот кто стоит на месте оказывается позади, двигаться надо, иначе - застой.

26 (31.10.2014 18:06:50 отредактировано lone_wolf)

Vascom пишет:

И ещё для тех, кто по прежнему считает systemd сложнее sysVinit

а также

dyasny пишет:

А тут система инициализации которая отменяет полотнища ненужных скриптов, и все, вопли на весь мир.

Мужики дайте курнуть то что вы курили я тоже так хочу  bm

В общем то конфиг инициализации systemd реально удобен, ФАКТ ! Но как вы выразились вопли идут иза того что systemd поглошяет все вокруг, а вот это уже как по мне ИМХО не хорошо.

Спросить - стыд минуты, не узнать - стыд всей жизни

27

lone_wolf пишет:

В общем то конфиг инициализации systemd реально удобен, ФАКТ ! Но как вы выразились вопли идут иза того что systemd поглошяет все вокруг, а вот это уже как по мне ИМХО не хорошо.

так ведь давно везде написано что это система управления, которая включает в себя систему инициации

28

dyasny, это уже почти ОС. Куда дальше его раздувать-то?

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

29 (31.10.2014 22:13:03 отредактировано Vascom)

Куда хотим, туда и раздуваем. Не нравится - не пользуйся  ae

Но все исходники открыты, можете форкать любой компонент как вам нравится.

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

30 (31.10.2014 22:30:36 отредактировано lone_wolf)

Vascom пишет:

Куда хотим, туда и раздуваем. Не нравится - не пользуйся 
Но все исходники открыты, можете форкать любой компонент как вам нравится.

на данное заявление у меня только 1 вопрос : неужели все пользователи linux реально системные программисты ? знающие ассемблер с++ c# и т.д которые с легкостью запилят дисриб свой с нуля на ядре Линуса Торвадса ?

Спросить - стыд минуты, не узнать - стыд всей жизни