Автор Тема: [решено] Замена systemd на sysvinit - последствия. Как починить?  (Прочитано 11646 раз)

Оффлайн marsden

  • Давно тут
  • **
  • Сообщений: 42
Хорош линукс тем, что настроил сервер и он работает и работает. Плох тем, что не трогаешь и забываешь. Осложнение вызывает то, что забыл то, чего и не знал никогда ))))

К сути. Стоял три года сервер в качестве роутера и хостинга для внутреннего сайта. И все бы ничего, но железо устарело и было принято решение собрать новую машину и поставить дистр посвежее. Был server-light 6.0 без графики и прочего, все работало как часики. Но старовата система, однако. Посему скачал alt-server-8.0 и накатил на новое железо. Воткнул SSD для серверов от интел, разместил на нем /var, чтобы быстро мускуль летал.
Первая непонятка - зачем серверу гуй? Ну да ладно, все равно стоит в шкафчике без клавы и монитора (как выяснилось позже - это весьма неудобно). Двухдневная битва с апачем 2.4 и разборками с openfire (ejabberd был нерабочий) и вроде все заработало....

До первого аварийного отключения. На SSD была ext4 и надо ж было так случиться, что что-то случилось с каким-то суперблоком и он отказался монтироваться при старте системы. Печаль-беда, один магазин встал колом, еще два на таймаутах, но ползли... Гугл внятного на ту ошибку очень мало дал, вылечить получилось, но при загрузке с флэшки. На всякий случай отодвинул SSD в сторону. Как-то доверие пропало...

Едем дальше, доезжаем до очередного выключения (почему-то всегда ночью и перед выходным). После появления питания машина загрузилась и вроде все нормально, но часов через 5 упал сайт и перестал раздаваться инет. Перезагрузка не помогла. Опять тащим монитор с клавой и выясняем, что система при загрузке не в состоянии проверить диск, однако знает, что он UNEXPECTED INCONSISTENCY, требует запустить fsck вручную и вообще, не хочет и не умеет лечить root file system. Что за фигня? Оказалось, что эта фигня - emergency mode, лечить файловую систему только при загрузке с флэшки или снятием винта и цеплянием на другую машину. Объезд - Ctrl-D и  продолжение загрузки. И еще оказалось, что этой фигней болеет все линукс-сообщество, переехавшее на systemd.

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

apt-get install sysvinit  (почему то при этом кроме systemd сносит и openssh)
apt-get install openssh

кнопка reset (потому что reboot не справляется)
вуа-ля! Машина грузится, спокойно проверяет ту самую root file system, перезагружается и пугает зависанием на starting service lvmpolld. По таймауту отвисает и грузится дальше. Все работает, как и хотелось. До гуя не доходит, обламывается, но он мне и не нужен.
И вот тут начинаются вопросы.

что за зависание lvmpolld? что будет, если его выключить?
куда потерялись логи? journalctl показывает только до момента перезагрузки, а в syslog пусто.
подозреваю, что нужно поставить какую-то службу, но не соображу - какую

Ядро 4.9.71-std-def-alt0.M80P.1

chkconfig --list
Спойлер
# chkconfig --list
ModemManager    0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
NetworkManager  0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
acpid           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
ahttpd          0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
ahttpd-firsttime        0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
alteratord      0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
anacron         0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
auditd          0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
autofs          0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
avahi-daemon    0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
bacula-dir      0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
bacula-fd       0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
bacula-sd       0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
bind            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
blk-availability        0:выкл  1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
blkmapd         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
bluetoothd      0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
cgconfig        0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
cgred           0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
clamd           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
clamsmtpd       0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
consolesaver    0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
cpufreq-simple  0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
crond           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
cups            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
dhcpd           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
dhcpd6          0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
dm              0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:вкл   6:выкл
dnsmasq         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
dovecot         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
ethtool         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
fbsetfont       0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
gssd            0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
htcacheclean2   0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
httpd2          0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
idmapd          0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
ifplugd         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
iptables        0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
irqbalance      0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
kadmin          0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
keytable        0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
kprop           0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
krb5kdc         0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
lm_sensors      0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
lvm2-lvmetad    0:выкл  1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
lvm2-lvmpolld   0:выкл  1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
lvm2-monitor    0:выкл  1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
mdadm           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
messagebus      0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
multipathd      0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
mysqld          0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
netfs           0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
network         0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
nfs             0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
nfslock         0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
nmb             0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
nscd            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
nslcd           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
ntpd            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
openfire        0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
openvpn         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
plymouth        0:выкл  1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
postfix         0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
random          0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
rawdevices      0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
rpcbind         0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
slapd           0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
smartd          0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
smb             0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
spamd           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
squid           0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
sshd            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
svcgssd         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
sysstat         0:выкл  1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
udevd           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
udevd-final     0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
ulogd           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
winbind         0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
x11presetdrv    0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл
xinetd          0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл

службы на основе xinetd:
        chargen-tcp:    выкл
        chargen-udp:    выкл
        cups-lpd:       выкл
        daytime-tcp:    вкл
        daytime-udp:    выкл
        discard-tcp:    выкл
        discard-udp:    выкл
        echo-tcp:       выкл
        echo-udp:       выкл
        mariadbcheck:   выкл
        tftp:           вкл
        time-tcp:       выкл
        time-udp:       выкл
        vsftpd:         вкл



« Последнее редактирование: 24.09.2018 15:05:36 от marsden »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
syslog-ng или rsyslog
Андрей Черепанов (cas@)

Оффлайн marsden

  • Давно тут
  • **
  • Сообщений: 42
syslog-ng или rsyslog

syslog-ng установлен-остановлен (нежданный каламбур ))

chkconfig --add syslog-ng && chkconfig syslog-ng onбудет правильно?


и еще. При попытке
#reboot
System has not been booted with systemd as init system (PID 1). Can't operate.
как его теперь ребутить?
« Последнее редактирование: 24.09.2018 09:20:12 от marsden »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
syslog-ng или rsyslog

syslog-ng установлен-остановлен (нежданный каламбур ))

chkconfig --add syslog-ng && chkconfig syslog-ng onбудет правильно?

И сразу
# /etc/rc.d/init.d/syslog-ng start

Команда покажет включен или не включен
# ll $(find /etc/rc.d/rc[0-6].d -name *syslog-ng*)
# alias | grep ll=
alias ll='ls -laptc'

Если включен, должна показать как
/etc/rc.d/rc0.d/K99syslog-ng -> ../init.d/syslog-ng
/etc/rc.d/rc1.d/K99syslog-ng -> ../init.d/syslog-ng
/etc/rc.d/rc2.d/S30syslog-ng -> ../init.d/syslog-ng
/etc/rc.d/rc3.d/S30syslog-ng -> ../init.d/syslog-ng
/etc/rc.d/rc4.d/S30syslog-ng -> ../init.d/syslog-ng
/etc/rc.d/rc5.d/S30syslog-ng -> ../init.d/syslog-ng
/etc/rc.d/rc6.d/K99syslog-ng -> ../init.d/syslog-ng
K - kill (stop)
S - start

# grep chkconfig ./etc/rc.d/init.d/syslog-ng
# chkconfig: 2345 30 99
« Последнее редактирование: 24.09.2018 09:27:24 от Speccyfighter »

Оффлайн marsden

  • Давно тут
  • **
  • Сообщений: 42
# grep chkconfig ./etc/rc.d/init.d/syslog-ng
# chkconfig: 2345 30 99

Ага, спасибо, все так и есть. Осталось с ребутом разобраться и сразу видно стало, что какая-то сволочь пытается по ssh влезть )))


Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
и еще. При попытке
#reboot
System has not been booted with systemd as init system (PID 1). Can't operate.
как его теперь ребутить?

В конкретно этой ситуации, это нормально:
С выносом systemd и ещё не поднятым init
# ls -l /proc/1/exe # init поднят как PID1
lrwxrwxrwx 1 root root 0 сен 22 18:24 /proc/1/exe -> /sbin/init

reboot накрылся медным тазом. :-)

Поэтому
на десктопах
Alt+SysRq+s
Alt+SysRq+u
Alt+SysRq+b

на ноутбуках с перключенными в BIOS F-функции
Alt+Fn+SysRq+s
Alt+Fn+SysRq+u
Alt+Fn+SysRq+b

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
chkconfig --add syslog-ng && chkconfig syslog-ng onбудет правильно?
"chkconfig --add" должно делаться при установке. Если не делается, это неправильно. А, вообще, проще было установить https://www.altlinux.org/Starterkits/server, он с sysvinit по-умолчанию. Про openssh вот тут пояснение: https://bugzilla.altlinux.org/35312
« Последнее редактирование: 24.09.2018 09:46:48 от asy »

Оффлайн marsden

  • Давно тут
  • **
  • Сообщений: 42

reboot накрылся медным тазом. :-)


печально, потому что надо ребутить по крону, а не по клавиатуре ((
reboot -f сработал, но как-то очень резво, как будто reset нажал, эхх...

Ладно, хрен с ним, все равно раз в два-три месяца питалово пропадает, сам перезагрузится )))

Спасибо за помощь, о великие гуру!  ;-) :-)


Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
reboot -f сработал, но как-то очень резво, как будто reset нажал, эхх...
Это так и есть, а не "как будто".

Оффлайн marsden

  • Давно тут
  • **
  • Сообщений: 42

"chkconfig --add" должно делаться при установке. Если не делается, это неправильно. А, вообще, проще было установить https://www.altlinux.org/Starterkits/server, он с sysvinit по-умолчанию. Про openssh вот тут пояснение: https://bugzilla.altlinux.org/35312

Вот сразу не разобрался, что есть такие наборчики, его бы и поставил. Теперь уж машина в бою, ближайшая переустановка 2-го января ))
Но, наверное, заморочусь, как-то кисло сидеть на полуперенедоломанной системе ))

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
печально, потому что надо ребутить по крону, а не по клавиатуре ((
Безотносительно ко всему остальному вопрос: а зачам reboot по крону!?

Оффлайн marsden

  • Давно тут
  • **
  • Сообщений: 42
печально, потому что надо ребутить по крону, а не по клавиатуре ((
Безотносительно ко всему остальному вопрос: а зачам reboot по крону!?

по глупости, наверное ))) На этой же машине стоит терабайтник, на который собираются архивы - мускуль, 1с, сайт, разработка и всякое ещё. Вспоминается такая штука при загрузке системы - в какой-то момент система решает, что "вот этот раздел монтировался уже 37 раз и ни разу не проверялся. Щас проверю...." и при большом количестве файлов на диске на моей памяти проверка затягивалась до 40 минут. Объехать этот момент, насколько я понимаю - нельзя, принудительно ребутить машину в этот момент - чревато. Посему мысль была - раз в месяц перезагружать с проверкой ночью, пока никого это не напрягает. Вот такая дурь в голове. Наверняка есть болеедругие способы, но я о них не знаю ))

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
chkconfig --add syslog-ng && chkconfig syslog-ng onбудет правильно?
"chkconfig --add" должно делаться при установке. Если не делается, это неправильно.

В теории он должен это делать через post_service скрипт
# rpm -qp --scripts syslog-ng-3.8.1-alt1.i586.rpm | head -n2
postinstall scriptlet (through /bin/sh):
/usr/sbin/post_service syslog-ng

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Наверняка есть болеедругие способы, но я о них не знаю
Это было головной болью с ext2/3, с ext4 это происходит быстро, в основном (но если конвертировать в ext4 из 3, надо помнить, что реально конвертация заканчивается псле перезаписи всех старых файлов и каталогов). Плюс есть ФС, для которых такая проверка не выполняется, например btrfs. И, в конце концов, по крону можно отмонтировать, прочекать и примонтировать вместо ребута.
« Последнее редактирование: 24.09.2018 10:21:22 от asy »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259

reboot накрылся медным тазом. :-)


печально, потому что надо ребутить по крону, а не по клавиатуре ((

Это только в момент замены systemd на sysvinit. После перезагрузки через SysRq всё будет как обычно на sysv.