LINUX.ORG.RU

Systemd 207

 


0

3

Вышел новый релиз популярной системы инициализации и управления сервисами GNU/Linux.

В этой версии:

  • добавлена логика, позволяющая автоматически монтировать home и swap разделы на GPT-дисках, что позволяет отказаться от fstab-файла на множестве конфигураций;
  • добавлена минимальная утилита для сохранения яркости дисплея между перезагрузками;
  • теперь сервис может быть перезапущен, если он определенное время не сообщал о своей активности (watchdog);
  • новый генератор getty-сервисов, который позволяет запускать getty не только на основной консоли ядра, но и на любой другой, указанной в параметре ядра console;
  • опции InaccessibleDirectories= и ReadOnlyDirectories= теперь могут принимать пути, начинающиеся с -; systemd будет учитывать, что файлы могут и не существовать;
  • journalctl -o и похожие команды теперь понимают новый режим отображения "short-precise", похожий на "short", но показывающий отметки времени;
  • больше кода распространяется под LGPL;
  • systemd больше не передает параметры окружения из ядра и initrd сервисам, однако это все еще возможно через параметр ядра systemd.setenv=;
  • команды systemctl set-log-level и systemctl dump перемещены в состав systemd-analyze;
  • systemd-sysctl теперь не читает файл /etc/sysctl.conf; если вам всё же это нужно, создайте на него симлинк из /etc/sysctl.d/99-sysctl.conf;
  • исправлены некоторые баги; добавлены другие, незначительные изменения.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Wizard_ (всего исправлений: 16)

Ответ на: комментарий от AVL2

потому что в шелле нет средств для решения всех возникающих >проблем. Нет развитой многопоточности, нет исключений и тому >подобного. А в шелловом фреймворке вообще нет ничего, кроме >пары директорий с симлинками и набора правил, типа запускаем >/etc/init.d/service старт-стоп-статус.

Всех возникающих проблем?0_о Я вас не понимаю какие увас проблемы при демонизации процесса. Я соглашусь иногда все сочеться сделать на другом языке без хаканья сшелла, но блин си тут не лучьший выбор. Брать си как заммену сшела для инит уж простите идеотизм, при наличии over9k скриптовых языков. Многопоточьность ненужна, это кретический учясток системы а вы хотите сделать его много поточным, нафиг,нафиг приложение с тредами, лучьше по старинке fork.

st4l1k ★★
()
Ответ на: комментарий от AVL2

высокая скорость, которая снижает вероятность рейсов, поменьше авось, например при многопоточности и т.д.

Это прекрасный! прекрасный аргумент.

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

P.S. Писанина на шелле в сравнении с «настоящим языком программирования», на самом деле, имеет ровно одну неприятную особенность, - она же фича! - это интерпретирование аргументов вызова. Ну, то есть, я бы предпочёл, чтобы конструкция

arg='a b c'
some_function_or_program $arg

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

AlexM ★★★★★
()
Последнее исправление: AlexM (всего исправлений: 1)
Ответ на: комментарий от dr_dobermann

с включением тоже самое. Комп укладывается в 3 минуты и меньше не надо. Пока чай нальешь, печенюх возьмешь.

st4l1k ★★
()
Ответ на: комментарий от st4l1k

На слове «кретический» мой парсер Вашей русская языке взорвалсо.

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

AlexM ★★★★★
()
Последнее исправление: AlexM (всего исправлений: 1)
Ответ на: комментарий от baka-kun

Ку
Могу только согласиться
Тоже когда увидел, немного прифигел.

st4l1k ★★
()
Ответ на: комментарий от qnikst

Я про двойные кавычки знаю, спасибо ;)

Написал же, что это - фича. Часто используемая шеллопейсателями для того, чтобы вначале напихать [сложным образом] в arg аргументов, а потом передать их, как если бы $arg был массивом.

AlexM ★★★★★
()
Ответ на: комментарий от AX

Кстати, напомните мне, зачем нужен systemd-sysctl, если sysctl сам может читать конфиги из /etc/sysctl.d/?

Чтобы всосать ещё больше кода, стать ещё более монстроподобным, чтобы сломать ещё более подсистем.

IPR ★★★★★
()
Ответ на: комментарий от Quasar

Systemd - это именно монолит. Его компоненты нельзя использовать без него же.

Ну у апстарта как-то получается.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от derlafff

через fstab, очевидно же

в новости же написано, что это сделано, чтобы отказаться от fstab. Зачем это прописывать?

xpahos ★★★★★
()
Ответ на: комментарий от derlafff

Наверное, потому что systemd — это не только система загрузки, но и «system manager»

Уйди, просто уйди. Раз уж не знаешь, чем должен заниматься «system manager»

IPR ★★★★★
()
Ответ на: комментарий от AX

Вброс школошеллохейтеров здесь не к месту. Не осилил 20 строк на баше? Лепи свои 20000 строк на своём любимом pure C (без комментариев и внятных названий переменных, само собой).

+1. Только полный идиот не в состоянии разобраться со скриптами /etc/rc.d/*

IPR ★★★★★
()
Последнее исправление: IPR (всего исправлений: 1)
Ответ на: комментарий от AVL2

Я уже предвижу, как сустемди монтирует хомяк в корень, а корень в хомяк, ещё и с правами разрешающими пользователю удалять/изменять файлы там.

daemonpnz ★★★★★
()
Ответ на: комментарий от anonymous

Чтобы иметь разные яркости монитора для разных пользователей? Или по-вашему нужно идти по пути «одна яркость подходит всем»?

Ну у них же все мозги застужены windows-way. Один PC - один пользователь.

IPR ★★★★★
()
Ответ на: комментарий от derlafff

не видел ни одного нетбука/ноутбука, который бы умел

Т.е. надо писать костыль, вместо банального

acpiconf -i batt | grep discharging || xbacklight = 10 &

или ты в этой строчке тоже не разберёшься?

IPR ★★★★★
()
Ответ на: комментарий от derlafff

Посмотрел. Типичный код на си. В типичном init.d-скрипте концентрация говнокода больше

u@netbook:~> cat /etc/rc.d/lpd 
#!/bin/sh
#
# $FreeBSD: release/9.1.0/etc/rc.d/lpd 231653 2012-02-14 10:16:56Z dougb $
#

# PROVIDE: lpd
# REQUIRE: DAEMON
# BEFORE:  LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="lpd"
rcvar="lpd_enable"
command="/usr/sbin/${name}"
required_files="/etc/printcap"
start_precmd="chkprintcap"

chkprintcap()
{
        if checkyesno chkprintcap_enable ; then
                /usr/sbin/chkprintcap ${chkprintcap_flags}
        fi
}

load_rc_config $name
run_rc_command "$1"
u@netbook:~> 

И где говнокод. Не думаю, что в линуске что-то по-другому.

IPR ★★★★★
()
Ответ на: комментарий от smilessss

скажи ещё, что в хромиум не нужно использовать, т.к. там тоже быдлокод

BSD-like init я могу быстренько сам подправить, без канпеляний и говнокода.

IPR ★★★★★
()
Ответ на: комментарий от IPR

Т.е. надо писать костыль, вместо банального

Учитывая, что это надо писать самому, а системд уже написан, костыль именно у тебя.

И можно ещё пример скриптика, чтобы можно было средствами ДЕ убавить яркость монитора, а потом загрузившись в getty/другую ДЕ получить автоматом ту же яркость?

Ivan_qrt ★★★★★
()
Ответ на: комментарий от IPR

Самое неприятное в/для systemd то, что в том единственном применении, где в линуксе важна скорость загрузки, «бесшовность», интегрированность процесса загрузки и управления системой, - в андроиде, - туда systemd не пускают.

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

AlexM ★★★★★
()
Ответ на: комментарий от IPR

Вопрос в том, зачем мне разбираться в этих портянках с кучей вспомогательного кода?

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
 
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -z "`grep $user /etc/passwd`" ]; then
       useradd -M -s /bin/nologin $user
   fi
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}
 
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
 
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
 
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
 
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}
 
force_reload() {
    restart
}
 
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
 
rh_status() {
    status $prog
}
 
rh_status_q() {
    rh_status >/dev/null 2>&1
}
 
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
Deleted
()
Ответ на: комментарий от Deleted

Не разбирайся, ёпрст. Чем системде тебе помогает разбираться НЕ разбираться в коде? И чем оно отличается от банального init'а?

IPR ★★★★★
()
Ответ на: комментарий от AlexM

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

IPR ★★★★★
()
Ответ на: комментарий от AVL2

Если в стандартном случае fstab будет пустым, чем это плохо?

Вы там все уже того? Прыгали-бегали вокруг LSB, теперь и он не нужен?

IPR ★★★★★
()
Ответ на: комментарий от AVL2

Все задачи, которые она решает стандартны.

А если нестандартны, я должен по-быстрому выучить Си и конпелять, конпелять, конпелять?

IPR ★★★★★
()
Ответ на: комментарий от IPR

Ну, нет, батарейки-то слабые, всегда хочется сэкономить хоть на спичках :)

К тому же, прикольно, когда давишь на кнопочку выключенного дивайса, и он почти мгновенно готов к работе :) Эстетствующая блажь - главное предназначение планшетов :)

AlexM ★★★★★
()
Ответ на: комментарий от derlafff

Шо-то мне казалось, что ты не обычная истеричка-хейтер

а мне казалось, что ты не обычная глупая поняшка, которая любит своих пони только за то, что мама ей накупила полную коллекцию cute-mark'ов...

без комментариев

а что так? Вот этот твой systemd оседает на дистрибутивах прямо как эта сажа на картинке. Никто его не хочет видеть, народ разбегается, а что с продакшеном сделаешь?

а от fstab тебя никто не вынуждает отказываться

ага. Это _пока_ не вынуждает. а потом будет как в огрызке, где хрен найдёшь нужный файл, в котором можно что-то поправить настроить. ВНЕЗАПНО: от него отказались. Вот в одной системе от настроечных файлов тоже отказались, теперь там тоже няшная бинарная СУБД. И что? Думаешь администраторы венды просто так больше денег зарабатывают?

лол. зачем исправлять быдлокод, который постоянно падает? А давайте изо ВСЕХ языков программирования выпилим обработку исключений, раз быдлокод не нужен

если ты не знал, то ОБРАБОТКА исключений как раз и нужна для того, что-бы программа НЕ ПАДАЛА, а корректно и самостоятельно решила неожиданную проблему. А если её, как ты говоришь «выпилить», то как раз ВСЕ программы и начнут падать. По любому поводу. Скажем, если не найдут fstab.

А сейчас быдлокод падает как раз потому, что быдлокодер забыл/забил обработать исключение(проверить код возврата в чистой сишечке без исключений). В итоге ему система говорит что-то вроде NULL, а программа этот NULL пытается как-то посвоему осмысленно использовать. Ну и быдлокод ессно падает.

И что делать? Очевидно поймать исключение, или проверить на NULL. Не... Мы лучше костыль в систему встроим, пусть она ещё раз поищет fstab, который мы сами же и выпилили... А вдруг появится?

раньше надо было просто прочитать яркость на выходе, и записать на входе.

лолчто?

а как по твоему «сохраняют яркость между загрузками»?

systemd больше не передает параметры окружения из ядра и initrd сервисам, однако это все еще возможно через параметр ядра systemd.setenv=;

именно то, что написано

что это за хрень, и зачем она нужна?

emulek
()
Ответ на: комментарий от IPR

Мне для тебя скриптики писать чтоде?

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

Ivan_qrt ★★★★★
()
Ответ на: комментарий от baka-kun

ты этта: здесь почитай: http://lurkmore.to/Индусский_код#K.D0.B8.D1.82.D0.B0.D0.B9.D1.81.D0.BA.D0.B8....

Неподдерживаемый write-only быдлокод, уже готовый рухнуть под собственной тяжестью. Не, ребята, он не засланец, он часранец натуральный. И то, как активно это говно кушают, заставляет меня быть спокойным за будущее альтернативных линуксу систем.

не. Это вряд-ли. КМК красношапка просто хочет завоевать весь Мир.

1. подсадить ВСЕ сервера мира на иглу systemd (первая доза бесплатно)

2. сделать наркоту платной. Да, все _захотят_ соскочить, но уже поздно...

emulek
()
Ответ на: комментарий от Deleted

Собственно, почти незачем. Впрочем, энжинкс - вообще штука, мало потребная енд-лузеру. А если Вы - не енд-лузер, то и потребности у Вас могут сильно отличаться от возможностей «старта по умолчанию».

И в случае «лапши-склеенной-соплями» Вы можете разобраться за приемлемое время и загнуть всё, так как Вам нравится. Это, «в целом», не хорошо и не плохо - это просто другой подход. И этот подход стал причиной популярности опен-соурс систем - все кубики под руками и как их складывать - Ваше дело, входной билет - очень дешёв.

Г-н Поттеринг предлагает смену парадигмы, в которой, например, добавление нового стейджа - это задача для рядового администратора просто неподъёмная. «Зато всё работает». Пока работает, разумеется.

А ещё в старой парадигме можно было запросто менять отдельные компоненты, и эти компоненты конкурировали только со своими прямыми конкурентами - syslog с syslog-ng с DJB socklog, пятьсот вариантов /etc/rc.d итп. Что не могло не способствовать «биологическому разнообразию» и, в конечном счёте, снижало цену ошибки.

AlexM ★★★★★
()
Ответ на: комментарий от AlexM

Я уж лучше скорость загрузки пожертвую, чем стабильность.

IPR ★★★★★
()
Ответ на: комментарий от xsektorx

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

lucentcode ★★★★★
()
Ответ на: комментарий от Ivan_qrt

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

Ну себе я уже давно понаписал, всё что мне надо. И занимает это обычно не более 5-10 минут.

IPR ★★★★★
()
Ответ на: комментарий от AX

Люди, не осилившие зайти на арчевики (или чем ты там пользуешься) и почитать про настройку яркости при старте иксов,

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

Казалось бы, как связаны два этих предложения?

Теперь, там где используется системд, не надо ничего настраивать руками.

F457 ★★★★
()
Ответ на: комментарий от Deleted

Потчему все любители системд приводят в пример совершенно не идентичные куски кода? Где указание nginx.conf, где make_dirs(), где configtest()?

anonymous
()
Ответ на: комментарий от anonymous

Потчему все любители системд приводят в пример совершенно не идентичные куски кода? Где указание nginx.conf, где make_dirs(), где configtest()?

Их нет, потому что возможностей ini-файлов недостаточно для реализации подобных {сервис|демон}оспецифичных вещей. К.О..

anonymous
()
Ответ на: комментарий от xpahos

чтобы отказаться от fstab

в новости написано, что благодаря этому fstab можно опустить на множестве конфигураций

derlafff ★★★★★
() автор топика
Ответ на: комментарий от IPR

А если нестандартны, я должен по-быстрому выучить Си и конпелять, конпелять, конпелять?

А если нестандартны, то можешь продолжать пилить свои «банальные некостыли» на баше, никто не запрещает

derlafff ★★★★★
() автор топика
Последнее исправление: derlafff (всего исправлений: 1)
Ответ на: комментарий от emulek

а что так? Вот этот твой systemd оседает на дистрибутивах прямо как эта сажа на картинке. Никто его не хочет видеть, народ разбегается, а что с продакшеном сделаешь?

сажа — это то, что ты мне втираешь сейчас. отрицать популярность systemd глупо

ага. Это _пока_ не вынуждает. а потом будет как в огрызке, где хрен найдёшь нужный файл, в котором можно что-то поправить настроить. ВНЕЗАПНО: от него отказались. Вот в одной системе от настроечных файлов тоже отказались, теперь там тоже няшная бинарная СУБД. И что? Думаешь администраторы венды просто так больше денег зарабатывают?

белки_истерички.jpg

если ты не знал, то ОБРАБОТКА исключений как раз и нужна для того, что-бы программа НЕ ПАДАЛА, а корректно и самостоятельно решила неожиданную проблему. А если её, как ты говоришь «выпилить», то как раз ВСЕ программы и начнут падать

Да ладно? Как можно было не понять такую простую аналогию?

что это за хрень, и зачем она нужна?

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

derlafff ★★★★★
() автор топика
Ответ на: комментарий от anonymous

По странному стечению обстоятельств Debian один из немногих, кто не собирается пока переходить на systemd.

А это что http://packages.debian.org/sid/systemd ? Впрочем, это пока огрызки от него - но по граблям с альтернативными поцтеринговыми путями в виде $XDG_CONFIG_HOME пришлось лихо поплясать. Радует одно, что этто нужно только для гнома, но радость похоже будет не полной.

LynxChaus
()
Ответ на: комментарий от derlafff

отрицать популярность systemd глупо

Полпулярность сабжа никто и не отрицает. Так же как не отрицают и то, что в 99% случаев переход на systemd был навязан стандным инстинктом мейнтенеров/разработчиков дистрибутива/софта.

anonymous
()

dbud-ctl dbud-ctl dbud-ctl

скоро будет. в арче уже просрались на тему внедрения kdbus в ядро

zyoung
()
Ответ на: комментарий от derlafff

Костыль в одну строчку? Разупорись. Костыль - это то, что городит Поццеринг.

IPR ★★★★★
()
Ответ на: комментарий от derlafff

А если нестандартны, то можешь продолжать пилить свои «банальные некостыли» на баше, никто не запрещает

Так а зачем мне тогда линуксы с этими вашими системд? Раньше хоть какая-то совместимость софта была, но скоро и её не будет.

IPR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.