Автор Тема: Xfce c Sysv  (Прочитано 674572 раз)

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: Xfce c Sysv
« Ответ #1080 : 30.06.2019 15:26:48 »
И у меня возникает вопрос: а где все те джедаи с корифеями были, когда sysv проморгали ?

Видимо, на runlevel в Альте давно всем пофиг :-] Никто ими не пользуется что ли... Или те, кто пользуются runlevel, не используют десктопы.
Угу, обратная сторона разработки: разработчики не пользуются тем, чем пользуются пользователи. В итоге получается испорченный телефон :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #1081 : 30.06.2019 15:34:39 »
На /etc/inittab тоже нужно багрепорт вешать:
о несетевом 'runlevel 2', /etc/inittab даже не упоминает
# sed -n '13,18p' /etc/inittab
# /etc/rc.d/rc executes the S and K scripts upon change of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Xfce c Sysv
« Ответ #1082 : 30.06.2019 15:48:46 »
https://www.altlinux.org/AlteratorServices

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

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Xfce c Sysv
« Ответ #1083 : 30.06.2019 16:53:01 »
Надо в mkimage-profiles делать
chkconfig служба reset

Тогда ок будет.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Xfce c Sysv
« Ответ #1084 : 30.06.2019 17:04:17 »
Надо в mkimage-profiles делать
chkconfig служба reset

Тогда ок будет.

В systemd тоже нормально включает.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #1085 : 30.06.2019 23:04:17 »
В альтах неверно конфигурируются все сетевые сервисы:
runlevel 2, это несетевой уровень

# grep chkconfig /etc/rc.d/init.d/{ntpd,netfs,network,sshd,NetworkManager,ModemManager}
/etc/rc.d/init.d/ntpd:# chkconfig: - 90 60
/etc/rc.d/init.d/netfs:# chkconfig: 345 25 75
/etc/rc.d/init.d/network:# chkconfig: 345 10 90
/etc/rc.d/init.d/sshd:# chkconfig: 2345 54 26
/etc/rc.d/init.d/NetworkManager:# chkconfig: - 12 90
/etc/rc.d/init.d/ModemManager:# chkconfig: - 11 91
# chkconfig --list | grep 'ntpd\|netfs\|sshd\|network\|NetworkManager\|ModemManager'
ModemManager    0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
NetworkManager 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
netfs          0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
network        0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
ntpd            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
sshd            0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл

https://book.linuxfromscratch.org.ru/systemv/chapter07/usage.html
Linux From Scratch
Версия 20190308

7.6.1. Как работает System V Bootscripts?


0: остановить компьютер
1: однопользовательский режим
2: многопользовательский режим без сети
3: многопользовательский режим с сетью
4: зарезервированный для настроек, в ином случае аналогичен уровню 3
5: аналогичен уровню 3 4, обычно используется для GUI авторизации (например xdm или kdm)
6: перезагрузка компьютера

Ни один сетевой сервис не должен быть запущен в 'runlevel 2', - вердикт окончательный и обжалованию не подлежит:
Цитировать
https://www.altlinux.org/AlteratorServices

включать для некоторого известного набора уровней (например 2345, как делается по умолчанию в chkconfig, если уровни не указывать). Кажется, самый хороший вариант. Правда при этом вообще теряется различие между разными runlevel'ами, но, кажется, это небольшое зло. Кстати, при этом запутается смысл в переключении runlevel'а 3/5 в alterator-X11. Там лучше либо непосредственно управлять chkconfig dm on/off, либо вообще не управлять этим...

По-умолчанию, сервисы ntpd NetworkManager ModemManager(?)("активация через D-Bus") будут запущены на несетевом уровне 'runlevel 2', чего не должно быть ни при каких условиях. Сервис sshd ошибочно запускается в 'runlevel 2' в многопользовательском несетевом уровне.
« Последнее редактирование: 30.06.2019 23:34:40 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #1086 : 01.07.2019 09:29:37 »
mkimage-profiles подстроен под systemd, где нет runlevel. Спасибо, что определили объём проблемы. Их всех надо:
chkconfig сервис reset

Угу, хороший вопрос:
только поведение этого reset будет сильно разным в зависимости от init-скрипта, - смотреть симлинки
# chkconfig --list osspd
osspd          0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
# chkconfig --del osspd
# chkconfig --add osspd
# grep chkconfig /etc/rc.d/init.d/osspd
# chkconfig: - 81 10
# ll /etc/rc*.d/*osspd | cut -f9- -d ' ' | sort
08:06 /etc/rc0.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc1.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc2.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc3.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc4.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc5.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc6.d/K10osspd -> ../init.d/osspd
# chkconfig osspd on
# ll /etc/rc*.d/*osspd | cut -f9- -d ' ' | sort
08:06 /etc/rc0.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc1.d/K10osspd -> ../init.d/osspd
08:06 /etc/rc6.d/K10osspd -> ../init.d/osspd
08:08 /etc/rc2.d/S81osspd -> ../init.d/osspd
08:08 /etc/rc3.d/S81osspd -> ../init.d/osspd
08:08 /etc/rc4.d/S81osspd -> ../init.d/osspd
08:08 /etc/rc5.d/S81osspd -> ../init.d/osspd
# chkconfig osspd reset
# ll /etc/rc*.d/*osspd | cut -f9- -d ' ' | sort
08:08 /etc/rc0.d/K10osspd -> ../init.d/osspd
08:08 /etc/rc1.d/K10osspd -> ../init.d/osspd
08:08 /etc/rc2.d/K10osspd -> ../init.d/osspd
08:08 /etc/rc3.d/K10osspd -> ../init.d/osspd
08:08 /etc/rc4.d/K10osspd -> ../init.d/osspd
08:08 /etc/rc5.d/K10osspd -> ../init.d/osspd
08:08 /etc/rc6.d/K10osspd -> ../init.d/osspd


# chkconfig --list NetworkManager # включено на несетевом уровне !!!
NetworkManager 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
# ll /etc/rc*.d/*NetworkManager | cut -f9- -d ' ' | sort
/etc/rc0.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc1.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc2.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc3.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc4.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc5.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc6.d/K90NetworkManager -> ../init.d/NetworkManager
# chkconfig --del NetworkManager
# ll /etc/rc*.d/*NetworkManager | cut -f9- -d ' ' | sort
ls: невозможно получить доступ к '/etc/rc*.d/*NetworkManager': Нет такого файла или каталога
# chkconfig --add NetworkManager
# ll /etc/rc*.d/*NetworkManager | cut -f9- -d ' ' | sort # Включено правильно !
07:15 /etc/rc0.d/K90NetworkManager -> ../init.d/NetworkManager
07:15 /etc/rc1.d/K90NetworkManager -> ../init.d/NetworkManager
07:15 /etc/rc2.d/K90NetworkManager -> ../init.d/NetworkManager
07:15 /etc/rc3.d/S12NetworkManager -> ../init.d/NetworkManager
07:15 /etc/rc4.d/S12NetworkManager -> ../init.d/NetworkManager
07:15 /etc/rc5.d/S12NetworkManager -> ../init.d/NetworkManager
07:15 /etc/rc6.d/K90NetworkManager -> ../init.d/NetworkManager
# grep chkconfig /etc/rc.d/init.d/NetworkManager
# chkconfig: - 12 90
# chkconfig NetworkManager off
# chkconfig NetworkManager on
# ll /etc/rc*.d/*NetworkManager | cut -f9- -d ' ' | sort # Нахера runlevel 2 ?!
07:57 /etc/rc0.d/K90NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc1.d/K90NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc2.d/S12NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc3.d/S12NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc4.d/S12NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc5.d/S12NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc6.d/K90NetworkManager -> ../init.d/NetworkManager
# chkconfig NetworkManager reset
# ll /etc/rc*.d/*NetworkManager | cut -f9- -d ' ' | sort # Сброшено, симлинки как и после --add
07:57 /etc/rc0.d/K90NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc1.d/K90NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc2.d/K90NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc3.d/S12NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc4.d/S12NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc5.d/S12NetworkManager -> ../init.d/NetworkManager
07:57 /etc/rc6.d/K90NetworkManager -> ../init.d/NetworkManager


Похоже, что на sysv их в принципе не надо включать.

:-) Надо:
В зависимости от ситуации, сервис должен включаться-выключаться-включаться, в процессе использования системы.


Или проблема таки в chkconfig?

В 'chkconfig <service> on'

ИМХО:
Если runlevel не указаны, включать только 345.
Если runlevel указаны, включать указанные.


Вот нафига chkconfig сервис on включает сервисы на уровнях, которые не прописаны в init-скрипте?

Ага :-)
Это вопрос к тому, кто его так научил.

Перед тем как столько пить, закусывать надо:
Цитировать
https://www.altlinux.org/AlteratorServices

включать для некоторого известного набора уровней (например 2345, как делается по умолчанию в chkconfig, если уровни не указывать). Кажется, самый хороший вариант. Правда при этом вообще теряется различие между разными runlevel'ами, но, кажется, это небольшое зло.

Ну ладно, хер бы с ними с этими сетевыми сервисами в runlevel 2, но нафига над dm так издеваться?
# chkconfig dm on # p8-sysv-xfce
# ll /etc/rc*.d/*dm | cut -f9- -d ' ' | sort
08:57 /etc/rc0.d/K05dm -> ../init.d/dm
08:57 /etc/rc1.d/K05dm -> ../init.d/dm
08:57 /etc/rc6.d/K05dm -> ../init.d/dm
08:58 /etc/rc2.d/S45dm -> ../init.d/dm
08:58 /etc/rc3.d/S45dm -> ../init.d/dm
08:58 /etc/rc4.d/S45dm -> ../init.d/dm
08:58 /etc/rc5.d/S45dm -> ../init.d/dm


И у меня вопрос:
Нахера chkconfig в альтах с 2012-го научили поддерживать сервисы systemd и какое отношение к systemd имеет chkconfig? И что общего между sysvinit и systemd? И с какого перепугу, функции sysvinit должны поддерживать systemd?
Хотите играться с off/on, ну и играйтесь в своём systemctl, а в sysv со своим systemd не лезьте.


Вердикт:
В альтах на sysv сломано включение сервисов.
« Последнее редактирование: 01.07.2019 09:34:43 от Speccyfighter »

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: Xfce c Sysv
« Ответ #1087 : 01.07.2019 09:51:22 »
Нахера chkconfig в альтах с 2012-го научили поддерживать сервисы systemd и какое отношение к systemd имеет chkconfig?
Добавлю немного. В альтах на systemd можно просто командовать chkconfig сервис on и он включится через передачу необходимого параметра systemctl. И это (проблемы с chkconfig) было ещё до того, как systemd пришёл в качестве второй системы инициализации (если я слова Антона про p6 и ранние бранчи правильно интерпретировал).

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Xfce c Sysv
« Ответ #1088 : 01.07.2019 10:09:49 »
И это (проблемы с chkconfig) было ещё до того, как systemd пришёл в качестве второй системы инициализации (если я слова Антона про p6 и ранние бранчи правильно интерпретировал).

Как я понял, это вообще нормальное поведение chkconfig on, включать сервис со 2 по 5 runlevel, если ему не указать runlevel. Вместо chkconfig on нужно использовать chkconfig reset, чтобы сервис включался на тех runlevel, которые прописаны.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Xfce c Sysv
« Ответ #1089 : 01.07.2019 10:10:57 »
Ну ладно, хер бы с ними с этими сетевыми сервисами в runlevel 2, но нафига над dm так издеваться?

Я его по незнанию включил в mkimage-profiles. Я не знал, что chkconfig on себя так ведёт.
« Последнее редактирование: 01.07.2019 10:39:20 от Антон Мидюков »

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: Xfce c Sysv
« Ответ #1090 : 01.07.2019 10:41:19 »
Как я понял, это вообще нормальное поведение chkconfig on, включать сервис со 2 по 5 runlevel, если ему не указать runlevel. Вместо chkconfig on нужно использовать chkconfig reset, чтобы сервис включался на тех runlevel, которые прописаны.
Я его по незнанию включил в mkimage-profiles. Я не знал, что chkconfig on себя так ведёт.
Другими словами, проблему можно считать решённой или есть ещё какие нюансы ? Тут вот Юрий про 2 ранлевел без сети пишет. Это тоже reset'ом решается ?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Xfce c Sysv
« Ответ #1091 : 01.07.2019 15:06:35 »
Нахера chkconfig в альтах с 2012-го научили поддерживать сервисы systemd и какое отношение к systemd имеет chkconfig?

Для плавной миграции на systemd.

И что общего между sysvinit и systemd?

И то, и другое система инициализации операционной системы :-)

Хотите играться с off/on, ну и играйтесь в своём systemctl, а в sysv со своим systemd не лезьте.

chkconfig всегда так работал :-]

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #1092 : 01.07.2019 15:59:36 »
Надо в mkimage-profiles делать
chkconfig служба reset

Тогда ок будет.

:-) Не-а, не будет:
# chkconfig --del ntpd
# chkconfig ntpd reset
# ll /etc/rc*.d/*ntpd | cut -f9- -d ' ' | sort
15:31 /etc/rc0.d/K60ntpd -> ../init.d/ntpd
15:31 /etc/rc1.d/K60ntpd -> ../init.d/ntpd
15:31 /etc/rc2.d/K60ntpd -> ../init.d/ntpd
15:31 /etc/rc3.d/K60ntpd -> ../init.d/ntpd
15:31 /etc/rc4.d/K60ntpd -> ../init.d/ntpd
15:31 /etc/rc5.d/K60ntpd -> ../init.d/ntpd
15:31 /etc/rc6.d/K60ntpd -> ../init.d/ntpd

Сервис ntpd не запустится на всех уровнях выполнения, - он везде kill(stop).
Кстати --add, сделает точно так же, как и reset.

И только 'chkconfig ntpd on' включит его на уровнях 2-5, включая и на несетевом уровне (см. ссылку выше на спецификацию в LFS для систем на System V).
Причём сделает он это, невзирая на то, указан в инит-скрипте уровень выполнения или нет (прочерк), - вспоминаем прикол с dm.

Есть правда и такой вариант создания симлинков Start-Kill, но вряд ли он тебе понравится, с учётом того, что в каких-то скриптах указаны не ранлэвэлы, а прочерки, т.е. даже парсить нечего:
# chkconfig --level 345 ntpd on
# chkconfig --level 1260 ntpd off

Здесь
# grep chkconfig /etc/rc.d/init.d/ntpd
chkconfig: - 90 60
нужно догадаться, что 'runlevel 2', это не сеть. И что запускаться сервис должен на уровнях 345.
« Последнее редактирование: 01.07.2019 16:14:42 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #1093 : 01.07.2019 16:09:34 »
Как я понял, это вообще нормальное поведение chkconfig on, включать сервис со 2 по 5 runlevel, если ему не указать runlevel.

:-) Это нормальное поведение противоречит спецификации Linux From Scratch. А заодно и повключает dm на всех уровнях, на которых позволит "умолчание" 2345, грандиозно забив на явно указанный runlevel.

Вместо chkconfig on нужно использовать chkconfig reset, чтобы сервис включался на тех runlevel, которые прописаны.

Ага :-) И часть сервисов у тебя окажется на всех уровнях в Kill.
ntpd и osspd как частный случай.
Но какие ещё, а кто его знает.
« Последнее редактирование: 01.07.2019 16:24:43 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #1094 : 01.07.2019 16:43:46 »
Как я понял, это вообще нормальное поведение chkconfig on, включать сервис со 2 по 5 runlevel, если ему не указать runlevel. Вместо chkconfig on нужно использовать chkconfig reset, чтобы сервис включался на тех runlevel, которые прописаны.
Я его по незнанию включил в mkimage-profiles. Я не знал, что chkconfig on себя так ведёт.
Другими словами, проблему можно считать решённой или есть ещё какие нюансы ? Тут вот Юрий про 2 ранлевел без сети пишет. Это тоже reset'ом решается ?

Не, не решается.
Я вообще не уловил логики поведения reset, в каких случаях он включит сервисы, включая и на ранлэвэл 2, а в каких случаях он на всех уровнях он сделает килл для какого-то другого сервиса. При этом его поведение совершенно аналогично --add.