Автор Тема: Не выключается комп  (Прочитано 2061 раз)

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Не выключается комп
« : 17.10.2017 13:01:20 »
В какой то момент времени перестал до конца выключаться комп.
То есть полоска пробегает до конца, а выключения не происходит.

Из доработок делал скрипт:
/home/user/.xsession.d/rc.ping.sh
#!/bin/bash
sleep 20
/bin/ping 192.168.10.8 > /dev/null &

Может это быть причиной?
Система отправляет ему сигнал, завершить работу и ждет ответа. А ответа нету.

# ps aux | grep pi
user      7230  0.0  0.0      0     0 ?        Z    12:30   0:00 [rc.ping.sh] <defunct>
user      7461  0.0  0.0   1952   500 ?        S    12:31   0:00 /bin/ping 192.168.10.8
« Последнее редактирование: 17.10.2017 13:11:14 от him »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Не выключается комп
« Ответ #1 : 17.10.2017 15:36:39 »
Может это быть причиной?

Кто его знает... Привет systemd?
В системах на UNIX System V init, эта проблема не проявляется.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Не выключается комп
« Ответ #2 : 18.10.2017 10:26:01 »
Может это быть причиной?
Да, конечно.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Не выключается комп
« Ответ #3 : 18.10.2017 10:31:28 »
Может это быть причиной?
Да, конечно.

Воспроизводил ситуацию топикстартера.
В системах на sysvinit система нормально завершает свою работу с выключением питания.

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Не выключается комп
« Ответ #4 : 18.10.2017 10:41:20 »
Куда копать ??

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Не выключается комп
« Ответ #5 : 18.10.2017 10:57:12 »
Куда копать ??

:-) Брать лопату побольше и копать в журнал systemd.
И смотреть на чём оно там споткнулось.
И если споткнулось на процессе ping, соображать, с какого такого бодуна сыстемдэ не покилил процесс хотя бы по таймауту. Болезни у него какие-то детские.
« Последнее редактирование: 18.10.2017 11:01:36 от Speccyfighter »

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Не выключается комп
« Ответ #6 : 18.10.2017 12:46:27 »
Из доработок делал скрипт:
/home/user/.xsession.d/rc.ping.sh
Код: [Выделить]

#!/bin/bash
sleep 20
/bin/ping 192.168.10.8 > /dev/null &

На systemd пишут timer для таких задач. Смотреть в качестве примера пакет profile-sync-daemon

Как смотреть логи в Systemd: https://altlinux.org/Journald
« Последнее редактирование: 18.10.2017 12:48:39 от Антон Мидюков »

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Не выключается комп
« Ответ #7 : 18.10.2017 15:20:17 »
Версия альтов p6. Сорри не упомянул раньше.
# journalctl
-bash: journalctl: команда не найдена

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Не выключается комп
« Ответ #8 : 18.10.2017 15:59:58 »
Версия альтов p6. Сорри не упомянул раньше.
# journalctl
-bash: journalctl: команда не найдена

Проверьте файл
/etc/sysconfig/halt

Строка должна быть закомментирована.
В скрипте
/etc/rc.d/init.d/halt

проверяется по условию:
- если строка раскомментирована, выполняется останов системы.
- если закомментирована, выполняется выключение питания.

Проверьте, запущен ли демон acpi
# service acpid status
acpid is running

Проверьте, есть ли в момент разгрузки системы смонтированный самба-ресурс и какой сетевой менеджер используется в системе. Если сетевой ресурс смонтирован на момент разгрузки системы и в системе используется NetworkManager, то на разгрузке система замрёт на полторы минуты. Это ошибка NM: неверно отрабатывается порядок стоп-сервис. Для этого случая существует хак в виде сервиса заставляющий правильно отрабатывать порядок стоп-сервис.


Ещё о выключении питания в системе на init:
На системах с System V init работает как останов с выключением питания
https://forum.altlinux.org/index.php?topic=32361.msg288014#msg288014
Инициализация UNIX System V init: выключение по кнопке Power
https://forum.altlinux.org/index.php?topic=32361.msg254907#msg254907

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Не выключается комп
« Ответ #9 : 18.10.2017 16:28:24 »
# cat /etc/sysconfig/halt
# Uncomment the following line if by default the system
# needs to be halted instead of powered off.
#HALTCMD=/sbin/halt

# service acpid status
acpid is running

Выключение делалась из гнома2. Систама - выключить.


Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Не выключается комп
« Ответ #10 : 18.10.2017 19:05:06 »
# cat /etc/sysconfig/halt
# Uncomment the following line if by default the system
# needs to be halted instead of powered off.
#HALTCMD=/sbin/halt

# service acpid status
acpid is running

Выключение делалась из гнома2. Систама - выключить.

- Перед выключением по самба ничего не смонтировано?
- acpi=off параметром ядру не стоит?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Не выключается комп
« Ответ #11 : 18.10.2017 20:44:48 »
Погрузился в слакварные архивы. И походил по ссылкам. На предмет, какие вообще могут быть причины отказа acpi.
Никогда бы не подумал, что одна из причин проблемы acpi может лежать в самом невероятном месте:
https://www.linuxquestions.org/questions/linux-general-1/poweroff-failure-to-shutdown-computer-acpi-%3D-must-use-power-button-solved-847236/page2.html#post4492964

Час от часу не легче
https://bbs.archlinux.org/viewtopic.php?pid=942746#p942746
« Последнее редактирование: 18.10.2017 21:36:20 от Speccyfighter »

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Не выключается комп
« Ответ #12 : 19.10.2017 09:18:26 »
# ps aux | grep smb
root     32693  0.0  0.0   3704   788 pts/0    S+   08:43   0:00 grep --color=auto smb
Я так понимаю, самба не запущена.

# dmesg | grep acpi
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[    1.755907] acpi device:43: registered as cooling_device0
[    4.781652] ACPI: Requesting acpi_cpufreq

# uname -a
Linux PC.localdomain 3.4.24-un-def-alt0.M60P.1 #1 SMP PREEMPT Tue Dec 18 15:38:17 UTC 2012 i686 GNU/Linux

# cat /boot/grub/grub.conf
cat: /boot/grub/grub.conf: Нет такого файла или каталога

# cat /boot/grub/menu.lst
cat: /boot/grub/menu.lst: Нет такого файла или каталога

# grep -r "acpi" /boot/grub
Двоичный файл /boot/grub/efiemu.mod совпадает
Двоичный файл /boot/grub/bsd.mod совпадает
Двоичный файл /boot/grub/acpi.mod совпадает
Двоичный файл /boot/grub/multiboot2.mod совпадает
/boot/grub/moddep.lst:halt: extcmd acpi
/boot/grub/moddep.lst:efiemu: gcry_crc normal acpi
/boot/grub/moddep.lst:lsacpi: extcmd acpi
/boot/grub/moddep.lst:acpi: extcmd mmap
/boot/grub/moddep.lst:multiboot2: vbe boot video relocator mmap lsapm acpi
/boot/grub/command.lst:*acpi: acpi
/boot/grub/command.lst:*lsacpi: lsacpi
Двоичный файл /boot/grub/halt.mod совпадает
Двоичный файл /boot/grub/lsacpi.mod совпадает

Где искать этот параметр ядра ?

# ls /etc/acpi
events

Цитировать
теперь я уверен, что модуль ehci_hcd вызвал проблему. После добавления' rmmod ehci_hcd ' в /etc/rc.local.shutdown, мой ноутбук теперь выключается и перезагружается нормально.

# ls /etc | grep rc
bashrc
bashrc.d
csh.cshrc
inputrc
mail.rc
pinforc
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
rcc.xml
rc.d
screenrc
wgetrc

# ls /etc/rc.d | grep rc
rc
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
rc.ntp.sh - мой скрипт для синхронизации времени при включении компа.
rc.ping.sh - мой скрипт принга, но он не запускается так как не поднят сетевой интерфейс на момент старта
rc.powerfail
rc.sysinit

# cat rc.powerfail
#!/bin/sh
#

WITHOUT_RC_COMPAT=1

# Source function library.
. /etc/init.d/functions

# See how we were called.
case "$1" in
start)
# When our UPS tells us power has failed, assume we have a few
# minutes of power left.  Schedule a shutdown for 2 minutes from now.
/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
;;
now)
# The battery of the external UPS is almost empty
# and the power is failing
;;
stop)
# If power was restored before the shutdown kicked in, cancel it.
/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
;;
*)
msg_usage "${0##*/} {start|now|stop}"
exit 1
;;
esac

Куда добавлять то ??

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Не выключается комп
« Ответ #13 : 19.10.2017 14:10:24 »
# ps aux | grep smb
root     32693  0.0  0.0   3704   788 pts/0    S+   08:43   0:00 grep --color=auto smb
Я так понимаю, самба не запущена.

Всё зависит от того через что идёт просмотр шары:

тут через mount -t cifs
$ mount|grep cifs
//192.168.1.10/multimedia on /mnt/disk1 type cifs (много всего)

Тут через gvfsd-smb
$ ps -eo args|grep smb|grep -v grep|grep -v browse
/usr/libexec/gvfs/gvfsd-smb --spawner :1.11 /org/gtk/gvfs/exec_spaw/6

В обоих случаях при этом поднятом менеджере,
$ ps -eo args|grep NetworkManager|grep -v grep
/usr/sbin/NetworkManager --pid-file=/var/run/NetworkManager.pid

без этого сервиса
https://forum.altlinux.org/index.php?topic=32361.msg253079#msg253079

полутораминутный фриз на shutdown будет.

Возможно есть что-то ещё, но мне неизвестно.
Фишка в том, что NM делает disconnect раньше, чем шара будет размонтирована. И при попытке размонтирования при отсутствующей сети, система на shutdown по таймауту становится колом.
Нельзя складывать интерфейсы раньше, чем будут размонтироваться шары. Лёнька!, - сначала umount, потом disconnect! (Намёк на то, что NM ваял Лёнька Поттеринг)
« Последнее редактирование: 19.10.2017 14:24:49 от Speccyfighter »

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Не выключается комп
« Ответ #14 : 19.10.2017 14:53:40 »
Метод проб и ошибок, позволил найти причину.
Она была в скриптах:

/etc/rc.d/rc.ntp.sh
/etc/rc.d/rc.ping.sh

код примерно такой:
..
sleep 20
ping 192.168.10.8

А другой скрипт запрашивал время для компа.
Комп старый, аккумулятор севший, при включении время 2000 год.

Как решить проблему?
Написал скриптик кторый при включении компа получает время по ntp.
Запихнул в авто загрузку /etc/rc.d/
Но реально ничего не работало.

Я так догадываюсь, что причина была в том, что скрипт запускался раньше, чем подымался сетевой интерфейс.
Тогда я туда добавил sleep секунд на 20, костыль, думая что сейчас интерфейс подымится, и после этого будет отправлен запрос на получения времени.

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

Когда исполнялся скрипт - отправлялся запрос, интерфейса нету, ошибка, ну и как Вы уже писали с самбой, никто не знает что с этим делать. Что и приводило к зависанию чего то, что мешало выключить компьютер.

Тогда актуальный вопрос.
Как мне надо было правильно выполнить обновления времени при включении компа ?
« Последнее редактирование: 19.10.2017 15:01:01 от him »