LINUX.ORG.RU

Debian Jessie: как правильно теперь все настраивать (systemd) ?

 ,


1

3

Добрый день, лоровцы!

Итак, поставил себе Debian Jessie. Теперь куча вопросов по systemd. На вид - какой-то один большой велосипедище над мелкими велосипедами...

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

Вопрос первый: в системе все равно есть скрипты инициализации в /etc/init.d
Их править можно как раньше или нет (удалять линки/снимать бит исполнения и т.д.)? Если нет, то для всех ли есть теперь аналоги в systemd ?

Вопрос второй: есть еще такой файлик /etc/rc.local, в который можно тоже прописать выполнение чего-либо после запуска машины. Его можно юзать как раньше? Просто я нашел в инете тему, что есть свои нюансы в systemd с запуском чего-либо ПОСЛЕ того, как поднялась сетевуха. Как теперь ПРАВИЛЬНО этим рулить если я, например, хочу туда прописать «/sbin/ethtool -s eth0 wol g» для Wake-On-LAN (в противном случае, настройка сетевухи слетает после перезагрузки) ?

Вопрос последний: как настраивать теперь локали в Debian? Я раньше правил /etc/locale.gen (раскоментировал те локали, что мне надо, и вуаля). Вроде теперь этим рулит некий localectl... или он для чего-то другого ?

Очень прошу помощи, особенно от тех, кто постиг этот комбайн под названием systemd.

Благодарю заранее! С меня тонны нефти.

★★★★★

Последнее исправление: Gonzo (всего исправлений: 1)

Присоединяюсь со своим вопросом: что там сейчас с настройкой сети и как повесить несколько ip на одну сетевую карту - алиасы, dummy или что то еще?

xtraeft ★★☆☆
()

теперь правильно кукарекать на лор про этот ужасный systemd, продолжая сидеть под вендой

anonymous
()

Т.е. весь тот срач, что арчеводы, федоровцы и прочее прошли, теперь будет повторён в исполнении дебианщиков?

anonymous
()

Вопрос последний: как настраивать теперь локали в Debian?

Как и всегда:

sudo dpkg-reconfigure locales

alegz ★★★★
()

Вопрос второй: есть еще такой файлик /etc/rc.local

 > sudo systemctl show rc-local.service | grep ExecStart
                                                    
ExecStart={ path=/etc/rc.local ; argv[]=/etc/rc.local start

т.е можно пользовать как раньше

Deleted
()

В-нулевых, redgremlin.

Что касается легаси скриптов инициализации — трогать их руками, скорее всего, не стоит. Если для какого-то демона нет нативного юнита, то он будет автоматически создан из легаси-скрипта и дальнейшие действия всё равно нужно будет совершать в контексте systemd.

В любом случае, у тебя тебя есть две пары операций (systemctl start/stop и systemctl enable/disable), которыми делается всё что нужно.

Что касается rc.local — он, скорее всего, остался в силе (в худшем случае придётся написать собственный элементарный юнит), но для настройки устройств есть более правильный способ: udev. Так вот, если ты хочешь правильно, то нужно написать правило udev примерно такого содержания и положить в /etc/udev/rules.d/40-wake-on-lan.rules (имя произвольное, только с порядком выполнения нужно аккуратнее, чтобы оно отработало до переименования).

Что касается локалей — ты путаешь их генерацию и выбор. Генерация локалей — это /etc/locale.gen и locale-gen, а выбор — это /etc/locale.conf (или, действительно, localectl, но это тупо обёртка над файлом).

Но, как правильно отмечают, у дебиана есть dpkg-reconfigure, коим тоже можно воспользоваться.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

Что касается Debian, несмотря на systemd всё legacy работает как и раньше.
rc.local считаю, что и раньше был НЕ лучшим местом для WOL. Я бы его прописал в правила udev с ACTION=«add» для интерфейса, хотя на самом деле и других вариантов хватает.

Переход на systemd в пользовательском сознании может проходить плавно и постепенно. То есть, если проще сделать legacy, то делай. Если хочешь сделать правильно, читай маны и примеры по systemd. После постижения основ последнего приходит осознание, что так лучше чем было.

surefire ★★★
()

1. Systemd обрабатывает то, что лежит у тебя в /etc/init.d. Но это как бы режим совместимости, чтобы хомячки меньше кирпичей генерировали. Вообще, вместо init-скриптов у тебя юниты. И включаешь/выключаешь ты их коммандами «systemctl enable foo» и «systemctl disable foo». Но это я тебе вообще азы systemd пересказываю, сам почитай про systemd units и systemctl, что ли.

2. Если ничего не поломано, то да, systemd обрабатывает и rc.local тоже. Проверь

systemctl status rc-local
Если active, то всё ок.

Moonshine
()
Последнее исправление: Moonshine (всего исправлений: 3)
Ответ на: комментарий от Deleted

инструмент, не породивший ни одного вопросника никто не использует

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

Простой и удобный инструмент породил аж целый тред-вопросник.

Простая и удобная ОС порождает тематические сайты, форумы, блоги и прочее.

Бугага.

Воистину.

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

Спасибо, особенно за подсказку с udev. Сделаю так.

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

Благодарю. Азы мне не надо, я начитался уже всякого :)

systemd обрабатывает то, что лежит у тебя в /etc/init.d
вместо init-скриптов у тебя юниты

Вопросы некоторые потому и возникли, что остались и прежние init-скрипты и появился systemd. В папках, где должны быть юниты, я как бы ничего не вижу особенного, мало того, они пусты. Как сказал выше intelfx: новое является «оберткой над старым». Нафига тогда этот зоопарк? Или это только начало, и дальше будет один systemd? Если так, то ОК. Мне все равно, чем рулить, только было бы четко и понятно.

То есть, что хочу сказать: установив Debian, я не понял, куда лезть, чтобы отключить ненужные мне службы. Я-то их отключил потом с помощью «systemd stop/disable foo».

Суть вопроса даже больше вот в чем: это «вина» Debian, что не убрали старое, впилив новое или «вина» systemd, который еще не умеет САМ рулить этим всем полностью? Что не так?

Разъясните, плиз, может я чего недопонимаю...

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

В папках, где должны быть юниты, я как бы ничего не вижу особенного, мало того, они пусты.

Серьёзно? Я не дебианщик, но AFAIK почти для всего есть уже нативные юниты в /usr/lib/systemd/system. Впрочем, даже если это не так, то в перспективе всё будет переведено на нативные юниты.

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

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

  • systemctl list-unit-files --state=enabled
  • systemctl disable
  • systemctl stop

не убрали старое, впилив новое

This.

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

Всё есть, только лежит в другом месте, пакеты должны ставить свои юниты в /usr/lib/systemd/system
А в /etc/systemd/system, только то что администратор сделал/переделал и имет более высокий приоритет, подробней здесь man systemd.unit

В debian не убрали legacy, что бы не сломать работающий годами софт (возможно даже не входящий в репозитарии или написаный на коленке админом) и не травмировать психику некоторых товарищей.

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

/usr/lib/systemd/system

Будешь смеяться, но папки system нет в /usr/lib/systemd :D

в перспективе

Ясно. Ну, я так и думал в общем-то.

This

Понятно. Теперь более-менее вырисовывается картина.

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

В папках, где должны быть юниты, я как бы ничего не вижу особенного, мало того, они пусты.

Не туда заглянул. Загляни в /lib/systemd/system и /etc/systemd/system

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

То есть, что хочу сказать: установив Debian, я не понял, куда лезть, чтобы отключить ненужные мне службы. Я-то их отключил потом с помощью «systemd stop/disable foo».

Тебе не надо никуда лезть для этого с systemd. Просто отключаешь «systemctl stop foo», «systemctl disable foo».

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

пакеты должны ставить свои юниты в /usr/lib/systemd/system

я выше комент написал: папки system нет в /usr/lib/systemd

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

Бро, мне не нужны азы. Спасибо! Это я уже давно прочитал и сделал. Тут другие нюансы :)

пакеты должны ставить свои юниты в /usr/lib/systemd/system
папки system нет в /usr/lib/systemd

:D

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

/lib/systemd/system

А, ок! Тогда сорри. Посмотрю там.

Gonzo ★★★★★
() автор топика

Блин, оно еще от дистра к дистру будет в разных папках обитать... Crazy shit.

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

Проверил, вчера обновленный wheezy=>jessie балконный сервер. Так вот могу скаказать, что старый добрый

service < option > | --status-all | [ service_name [ command | --full-restart ] ]

Оказался обёрткой над systemctl, т.е. для пользователя в плане управления сервисами вообще почти ничего не изменилось, service service_name start/stop как был так и остался.

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

surefire ★★★
()

Твою ж налево...

И как теперь рулить сетью? :D

Вот самый первый комент, например:

что там сейчас с настройкой сети и как повесить несколько ip на одну сетевую карту - алиасы, dummy или что то еще?

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

Та отож жеж... Сижу, курю теперь литературу :)

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

Ну вообще у красношапочных и дебианоподбных всегда куча различий была в архитектуре системы. Конфиги апача например у первых в /etc/httpd, у вторых в /etc/apache2.

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

Ну не путай ты человека, не знаю, где она там должна, но в дебиане точно нет.

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

:)
Незнаю почему, но debian решил сделать всё по своему, возможно какие-то старые костыли, не дали сделать как у всех.

http://www.freedesktop.org/software/systemd/man/systemd.unit.html

  /usr/lib/systemd/system/*

arch: man systemd.unit

  /usr/lib/systemd/system/*

debian: man systemd.unit

  /lib/systemd/system/*

surefire ★★★
()

Во! Пришла жара в хату!
Теперь и мне попкорном запасаться пора.

Понаблюдаю пока со стороны ))

deep-purple ★★★★★
()
Ответ на: комментарий от intelfx

Это и интересовало. Спасибо. Я-то найду вариант, как сделать так, чтобы работало, но при новых обстоятельствах возникают опасения «а правильно ли я делаю?» и «ничего ли я не поломаю этим новым костылем?». Только и всего :)

Спасибо всем, посоны! Буду дальше курить маны.

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

Таки да. Отличился.
Честно говоря, лучше бы он отличился, допилив systemd и выпилив SysV дабы не плодить костыли :D

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

что там сейчас с настройкой сети

Можно пользоваться традиционным /etc/interfaces, можно поставить NetworkManager и рулить им, можно воспользоваться systemd-networkd (если не нужны сложные сетевые конфигурации, не стоит ждать от него слишком многого, он для элементарных конфигураций — контейнер, десктоп с одним подключением и т.д.).

как повесить несколько ip на одну сетевую карту - алиасы

В последнем случае — /etc/systemd/network/wired-aliased.network

[Match]
Name=eth0

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8

[Address]
Address=192.168.2.20/24

[Address]
Address=192.168.3.3/24

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

лучше бы он отличился, допилив systemd и выпилив SysV
выпилив SysV

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

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

продолжая сидеть под вендой

Под jessie ) В который раз посещает мысль о том, какой максимальный лимит вопросов на ЛОРе для одного пользователя за единицу времени.

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

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

CryAngel
()

Легко гуглится хаутушка по тому, как снести systemd и вернуть старый инит. Мне кажется, «если раньше всё работало, а теперь непонятно, как управлять комбайном», имеет смысл следовать хаутушке.

А вот и ссылка на одну из таких хаутушек: http://without-systemd.org/wiki/index.php/How_to_remove_systemd_from_a_Debian...

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

Когда я так сделал на машине, которую только что обновил до jessie (и увидел незнакомый мне системд), мне ничего лишнего не снесло.

yura_ts ★★
()

Почему-то не смог поднять VPN. На Wheezy с полпинка поднимается: конфиг подложил и запустил.
Службу останавливал и через systemd и через service stop - пофиг. Все равно выдает, что устройство уже используется.

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