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

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #690 : 29.09.2018 19:27:28 »
Это не совет и не разработка. Это не тянет даже на записки на коленке. Возможно это даже полный бред. Это попытка хоть как-то прояснить катастрофичную ситуацию с /var/lock на системах с sysv на сизифе. Которая за последние три недели не сдвинулась ни на шаг.
См.:
 Ошибка 35350 - Нет директории /var/lock/subsys/ на sysV
https://bugzilla.altlinux.org/show_bug.cgi?id=35350

Это только багрепорт говорит о subsys, но на самом деле проблема куда шире и не ограничивается только каталогом subsys.


Далее из p8-sysv-tde

https://bugzilla.altlinux.org/show_bug.cgi?id=35350#c3
Цитировать
Комментарий #3 от Alexey Shabalin 2018-09-05 21:14:35 (-) [ответить]

извиняюсь, почему /var/lock не тоже самое что /run/lock
# ls -l /run/ | grep lock
drwxr-xr-x 5 root root    100 сен 29 10:01 lock
# ls -l /var/ | grep lock
drwxr-xr-x  8 root root   4096 сен 29 09:15 lock
# ls -l /run/lock/subsys/
итого 0
-rw-r--r-- 1 root root 0 сен 29 10:01 blk-availability
-rw-r--r-- 1 root root 0 сен 29 10:01 lvm2-monitor
-rw-r--r-- 1 root root 0 сен 29 10:01 lvmetad
# ls -l /var/lock/subsys/
итого 0
-rw-r--r-- 1 root root 0 сен 29 10:01 alteratord
-rw-r--r-- 1 root root 0 сен 29 10:01 crond
-rw-r--r-- 1 root root 0 сен 29 10:01 cups
-rw-r--r-- 1 root root 0 сен 29 10:01 dm
-rw-r--r-- 1 root root 0 сен 29 10:01 fbsetfont
-rw-r--r-- 1 root root 0 сен 29 10:01 gpm
-rw-r--r-- 1 root root 0 сен 29 10:01 hal
-rw-r--r-- 1 root root 0 сен 29 10:01 keytable
-rw-r--r-- 1 root root 0 сен 29 10:01 kheaders
-rw-r--r-- 1 root root 0 сен 29 10:01 klogd
-rw-r--r-- 1 root root 0 сен 29 10:01 messagebus
-rw-r--r-- 1 root root 0 сен 29 10:01 network
-rw-r--r-- 1 root root 0 сен 29 10:01 nmb
-rw-r--r-- 1 root root 0 сен 29 10:01 ntpd
-rw-r--r-- 1 root root 0 сен 29 10:02 osspd
-rw-r--r-- 1 root root 0 сен 29 10:01 plymouth
-rw-r--r-- 1 root root 0 сен 29 10:01 powersaved
-rw------- 1 root root 0 сен 29 10:01 random
-rw-r--r-- 1 root root 0 сен 29 10:01 smartd
-rw-r--r-- 1 root root 0 сен 29 10:01 smb
-rw-r--r-- 1 root root 0 сен 29 10:01 sshd
-rw-r--r-- 1 root root 0 сен 29 10:01 syslogd
-rw-r--r-- 1 root root 0 сен 29 10:01 sysstat
-rw-r--r-- 1 root root 0 сен 29 10:01 udevd
-rw-r--r-- 1 root root 0 сен 29 10:01 udevd-final
# ls -lR /var/lock/
/var/lock/:
итого 24
drwxr-xr-x 2 root root    4096 сен 29 10:04 dmraid
drwx------ 2 root root    4096 май 22  2016 makewhatis
drwxrwxr-x 2 root scanner 4096 май 16 17:59 sane
drwxrwx--- 2 root uucp    4096 фев 11  2016 serial
drwx------ 2 root root    4096 сен 29 10:02 subsys
drwxrwx--- 2 root uucp    4096 фев 11  2016 uucp

/var/lock/dmraid:
итого 0

/var/lock/makewhatis:
итого 0

/var/lock/sane:
итого 0

/var/lock/serial:
итого 0

/var/lock/subsys:
итого 0
-rw-r--r-- 1 root root 0 сен 29 10:01 alteratord
-rw-r--r-- 1 root root 0 сен 29 10:01 crond
-rw-r--r-- 1 root root 0 сен 29 10:01 cups
-rw-r--r-- 1 root root 0 сен 29 10:01 dm
-rw-r--r-- 1 root root 0 сен 29 10:01 fbsetfont
-rw-r--r-- 1 root root 0 сен 29 10:01 gpm
-rw-r--r-- 1 root root 0 сен 29 10:01 hal
-rw-r--r-- 1 root root 0 сен 29 10:01 keytable
-rw-r--r-- 1 root root 0 сен 29 10:01 kheaders
-rw-r--r-- 1 root root 0 сен 29 10:01 klogd
-rw-r--r-- 1 root root 0 сен 29 10:01 messagebus
-rw-r--r-- 1 root root 0 сен 29 10:01 network
-rw-r--r-- 1 root root 0 сен 29 10:01 nmb
-rw-r--r-- 1 root root 0 сен 29 10:01 ntpd
-rw-r--r-- 1 root root 0 сен 29 10:02 osspd
-rw-r--r-- 1 root root 0 сен 29 10:01 plymouth
-rw-r--r-- 1 root root 0 сен 29 10:01 powersaved
-rw------- 1 root root 0 сен 29 10:01 random
-rw-r--r-- 1 root root 0 сен 29 10:01 smartd
-rw-r--r-- 1 root root 0 сен 29 10:01 smb
-rw-r--r-- 1 root root 0 сен 29 10:01 sshd
-rw-r--r-- 1 root root 0 сен 29 10:01 syslogd
-rw-r--r-- 1 root root 0 сен 29 10:01 sysstat
-rw-r--r-- 1 root root 0 сен 29 10:01 udevd
-rw-r--r-- 1 root root 0 сен 29 10:01 udevd-final

/var/lock/uucp:
итого 0
# ls -lR /run/lock/
/run/lock/:
итого 0
drwx------ 2 root root  40 сен 29 10:01 lvm
drwxrwx--- 2 root uucp  40 сен 29 10:01 serial
drwx------ 2 root root 100 сен 29 10:01 subsys

/run/lock/lvm:
итого 0

/run/lock/serial:
итого 0

/run/lock/subsys:
итого 0
-rw-r--r-- 1 root root 0 сен 29 10:01 blk-availability
-rw-r--r-- 1 root root 0 сен 29 10:01 lvm2-monitor
-rw-r--r-- 1 root root 0 сен 29 10:01 lvmetad
$ rpm -qf /lib/tmpfiles.d/legacy.conf
systemd-utils-237-alt2.M80P.2
# cat /lib/tmpfiles.d/legacy.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# These files are considered legacy and are unnecessary on legacy-free
# systems.

d /run/lock 0755 root root -
L /var/lock - - - - ../run/lock

# /run/lock/subsys is used for serializing SysV service execution, and
# hence without use on SysV-less systems.

d /run/lock/subsys 0700 root root -

# /run/lock/lockdev is used to serialize access to tty devices via
# LCK..xxx style lock files, For more information see:
# http://lists.freedesktop.org/archives/systemd-devel/2011-March/001823.html
# On modern systems a BSD file lock is a better choice if
# serialization is needed on those devices.

d /run/lock/serial 0770 root uucp -

# /forcefsck, /fastboot and /forcequotacheck are deprecated in favor of the
# kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and
# 'quotacheck.mode=force'

r! /forcefsck
r! /fastboot
r! /forcequotacheck

А не поэтому ли "/var/lock не тоже самое что /run/lock"?
$ man 5 tmpfiles.d | sed -n '160,166p'
       L, L+
           Create a symlink if it does not exist yet. If suffixed with + and a file or
           directory already exists where the symlink is to be created, it will be
           removed and be replaced by the symlink. If the argument is omitted, symlinks
           to files with the same name residing in the directory /usr/share/factory/ are
           created. Note that permissions and ownership on symlinks are ignored.

# sed -n '14p' /lib/tmpfiles.d/legacy.conf
L /var/lock - - - - ../run/lock
# ls -l /run/ | grep lock
drwxr-xr-x 5 root root    100 сен 29 10:01 lock
# ls -l /var/ | grep lock
drwxr-xr-x  8 root root   4096 сен 29 09:15 lock

ИМХО:
Проблема уже была на p8, но сидела тихо пока в filesystem не вкрутили коммит (см. #35350), что и разломало /var/lock на sysv.

Любая конструктивная критика и дополнения приветствуются.
« Последнее редактирование: 29.09.2018 19:53:46 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #691 : 29.09.2018 19:34:01 »
Была у меня мысль на предмет костыля пакета-пустышки, который пост-инсталл скриптом создаст все возможные /var/lock/*/, но разворачивать 17 тыс. пакетов, а следом и 17 тыс. тарболов с парсингом вариантов, это уже явный перебор.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Xfce c Sysv
« Ответ #692 : 30.09.2018 14:49:32 »
ИМХО:
Проблема уже была на p8, но сидела тихо пока в filesystem не вкрутили коммит (см. #35350), что и разломало /var/lock на sysv.

Так оно и есть. Поломали уже очень давно. Я об этом писал.

А не поэтому ли "/var/lock не тоже самое что /run/lock"?

Ага. Но L+ тоже неправильно использовать. Вероятно, какой-то из демонов успевает вперёд создать директорию /var/lock/ на sysV. Т.е. ошибка в порядке следования загрузки демонов.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Xfce c Sysv
« Ответ #693 : 30.09.2018 15:42:51 »
Ага. Но L+ тоже неправильно использовать. Вероятно, какой-то из демонов успевает вперёд создать директорию /var/lock/ на sysV. Т.е. ошибка в порядке следования загрузки демонов.

Заглянул в initrd, а там /var/lock и /var/run есть :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #694 : 30.09.2018 15:49:36 »
Ага. Но L+ тоже неправильно использовать. Вероятно, какой-то из демонов успевает вперёд создать директорию /var/lock/ на sysV. Т.е. ошибка в порядке следования загрузки демонов.

Заглянул в initrd, а там /var/lock и /var/run есть :-)

Антон, покажи команду(ы) распаковки initrd, а то gunzip-ить initrd ядер выше 4.4 шо-то не выходит.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Xfce c Sysv
« Ответ #695 : 30.09.2018 17:27:19 »
Антон, покажи команду(ы) распаковки initrd, а то gunzip-ить initrd ядер выше 4.4 шо-то не выходит.

А я через mc зашёл внутрь него на regular-icewm.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Xfce c Sysv
« Ответ #696 : 30.09.2018 18:07:42 »
Заглянул в initrd, а там /var/lock и /var/run есть :-)

Не, думаю, это ложный след. initrd для systemd такой же, а
L /var/lock - - - - ../run/lock

проходит успешно. Я тем временем проверил, что
L+ /var/lock - - - - ../run/lock

проблему решает. надо вычислить, кто успел что-то записать в /var/lock

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #697 : 30.09.2018 18:30:32 »
Я тем временем проверил, что
L+ /var/lock - - - - ../run/lock

проблему решает.

Угадал мою мысль с проверкой :)

надо вычислить, кто успел что-то записать в /var/lock

Я бы даже сказал, искать то, что успело создать каталог /var/lock до того как пыталось отработать создавая симлинк:
# sed -n '14p' /lib/tmpfiles.d/legacy.conf
L /var/lock - - - - ../run/lock

Антон, а что значит призрак?
# rpm -q --changelog filesystem | grep '28 2018 Dmitry V. Levin\|lock/\* as %ghost'
* Вт авг 28 2018 Dmitry V. Levin <ldv@altlinux.org> 2.3.17-alt1
- Added %ghost /run/lock/, marked /var/lock/ and /var/lock/* as %ghost (by Alexey Shabalin).
# rpm -qvl filesystem | grep lock
drwxr-xr-x    2 root    root                        0 авг 28 20:26 /run/lock
drwxr-xr-x    2 root    root                        0 авг 28 20:26 /var/lock
drwxrwx---    2 root    uucp                        0 авг 28 20:26 /var/lock/serial
drwx------    2 root    root                        0 авг 28 20:26 /var/lock/subsys
drwxrwx---    2 root    uucp                        0 авг 28 20:26 /var/lock/uucp

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #698 : 30.09.2018 18:35:57 »
В regular-xfce на systemd:
# ls -lR /var/lock/
/var/lock/:
итого 4
-rw-r--r-- 1 root root 22 сен 30 20:33 asound.state.lock
drwx------ 2 root root 40 сен 30 20:33 lvm
drwxr-xr-x 2 root root 40 сен 30 20:33 sepermit
drwxrwx--- 2 root uucp 40 сен 30 20:33 serial
drwx------ 2 root root 60 сен 30 20:33 subsys

/var/lock/lvm:
итого 0

/var/lock/sepermit:
итого 0

/var/lock/serial:
итого 0

/var/lock/subsys:
итого 0
-rw-r--r-- 1 root root 0 сен 30 20:33 network
# ls -lR /run/lock/
/run/lock/:
итого 4
-rw-r--r-- 1 root root 22 сен 30 20:33 asound.state.lock
drwx------ 2 root root 40 сен 30 20:33 lvm
drwxr-xr-x 2 root root 40 сен 30 20:33 sepermit
drwxrwx--- 2 root uucp 40 сен 30 20:33 serial
drwx------ 2 root root 60 сен 30 20:33 subsys

/run/lock/lvm:
итого 0

/run/lock/sepermit:
итого 0

/run/lock/serial:
итого 0

/run/lock/subsys:
итого 0
-rw-r--r-- 1 root root 0 сен 30 20:33 network
# ls -l /var/ /run/ | grep lock
drwxr-xr-x  6 root   root         140 сен 30 20:33 lock
drwxr-xr-x  6 root root    140 сен 30 20:33 lock
« Последнее редактирование: 30.09.2018 18:38:29 от Speccyfighter »

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Xfce c Sysv
« Ответ #699 : 30.09.2018 19:04:12 »
%ghost указывает, что файл может отсутствовать в системе. При установке файл не будет создаваться. По сути только принадлежность файла к пакету им указывается.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #700 : 30.09.2018 20:51:16 »
Совсем не понял:
- а два лок-файла-то зачем?
# ls -l /{var,run}/ | grep lock
drwxr-xr-x  6 root   root         140 сен 30 20:33 lock
drwxr-xr-x  6 root root    140 сен 30 20:33 lock
# ls -l /{var,run}/lock/subsys
/run/lock/subsys:
итого 0
-rw-r--r-- 1 root root 0 сен 30 20:33 network

/var/lock/subsys:
итого 0
-rw-r--r-- 1 root root 0 сен 30 20:33 network
# ls -l /{var,run}/lock/
/run/lock/:
итого 4
-rw-r--r-- 1 root root 22 сен 30 20:33 asound.state.lock
drwx------ 2 root root 40 сен 30 20:33 lvm
drwxr-xr-x 2 root root 40 сен 30 20:33 sepermit
drwxrwx--- 2 root uucp 40 сен 30 20:33 serial
drwx------ 2 root root 60 сен 30 20:33 subsys

/var/lock/:
итого 4
-rw-r--r-- 1 root root 22 сен 30 20:33 asound.state.lock
drwx------ 2 root root 40 сен 30 20:33 lvm
drwxr-xr-x 2 root root 40 сен 30 20:33 sepermit
drwxrwx--- 2 root uucp 40 сен 30 20:33 serial
drwx------ 2 root root 60 сен 30 20:33 subsys
# find /{var,run}/lock/ -type f -print
/var/lock/asound.state.lock
/var/lock/subsys/network
/run/lock/asound.state.lock
/run/lock/subsys/network
« Последнее редактирование: 30.09.2018 20:55:05 от Speccyfighter »

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Xfce c Sysv
« Ответ #701 : 01.10.2018 07:50:47 »
Совсем не понял:
- а два лок-файла-то зачем?

/var/lock symlink to /run/lock

Часть программ смотрят в /var/lock по старинке, а часть новомодных уже глядят в /run/lock. /var/lock - это legacy, которое когда-нибудь прекратят поддерживать все программы.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #702 : 01.10.2018 09:35:27 »
Совсем не понял:
- а два лок-файла-то зачем?

/var/lock symlink to /run/lock

Ага, щас :-) Как бы не так:
# ls -l /{var,run}/ | grep lock
drwxr-xr-x  6 root   root         140 сен 30 20:33 lock
drwxr-xr-x  6 root root    140 сен 30 20:33 lock

Потому и спрашивал, а нафига xfce с systemd два одинаковых лок-файла.
Тот коммит не решает ни одной проблемы, а порождает аж две.
Отсюда вопрос:
- Нафига нужен коммит который только порождает проблемы?
Моя логика ответа на этот вопрос не даёт.
« Последнее редактирование: 01.10.2018 10:15:40 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #703 : 01.10.2018 11:59:48 »
Отписался в багзилла переводом regular-xfce systemd>sysvinit на предмет L+
https://bugzilla.altlinux.org/show_bug.cgi?id=35350#c10

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #704 : 01.10.2018 12:25:55 »
Частичное дублирование https://bugzilla.altlinux.org/show_bug.cgi?id=35350#c10

Перевод лайва (лайв режим)
http://nightly.altlinux.org/sisyphus/snapshots/20180926/regular-xfce-20180926-i586.iso
с systemd на sysvinit

Последовательность действий:

Сменить L на L+
$ grep ^L /lib/tmpfiles.d/legacy.conf
L+ /var/lock - - - - ../run/lock

Установить пакеты для перевода регулярного лайва xfce с systemd на sysvinit
# apt-get install \
sysvinit \
pm-utils \
nm-sysvinit \
polkit-sysvinit \
systemd- \
systemd-services- \
systemd-sysvinit- \
apt-conf-ignore-systemd \
syslog-ng

Перезагрузиться по SysRq

Alt+Fn+SysRq+SUB


После перезагрузки получаем в лайве
Система на sysvinit
# ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 окт  1 14:27 /proc/1/exe -> /sbin/init

/var/lock стал симлинком на /run/lock
# ls -l /{var,run} | grep lock
drwxr-xr-x 6 root   root        120 окт  1 14:27 lock
lrwxrwxrwx 1 root root     11 окт  1 14:27 lock -> ../run/lock

Файлы блокировок создались
# find /{var,run}/lock -type f -print
/run/lock/subsys/plymouth
/run/lock/subsys/alteratord
/run/lock/subsys/ntpd
/run/lock/subsys/spice-vdagentd
/run/lock/subsys/avahi
/run/lock/subsys/autofs
/run/lock/subsys/dm
/run/lock/subsys/keytable
/run/lock/subsys/fbsetfont
/run/lock/subsys/udevd-final
/run/lock/subsys/sensors
/run/lock/subsys/random
/run/lock/subsys/bluetooth
/run/lock/subsys/NetworkManager
/run/lock/subsys/network
/run/lock/subsys/messagebus
/run/lock/subsys/acpid
/run/lock/subsys/udevd

Каталоги /{var,run}/*/ существуют
# ls -l /{var,run}/lock
lrwxrwxrwx 1 root root  11 окт  1 14:27 /var/lock -> ../run/lock

/run/lock:
итого 0
drwx------ 2 root root  40 окт  1 14:27 lvm
drwxr-xr-x 2 root root  40 окт  1 14:27 sepermit
drwxrwx--- 2 root uucp  40 окт  1 14:27 serial
drwx------ 2 root root 400 окт  1 14:27 subsys

Плюс получаем отсутствие ошибки
No such file or directory
на загрузке на предмет subsys, при создании lock-файлов.