Для выполнения операции выключения компьютера в Linux используется сигнал SIGTERM (Terminate). Он отправляется процессу init (который имеет PID 1), который затем выполняет различные действия, такие как остановка всех служб, размонтирование файловых систем и, наконец, выключение питания.
В вашем случае, если процессы успешно завершаются, но питание не отключается, возможно, проблема вызвана некорректной обработкой сигнала выключения. Для устранения этой проблемы можно попробовать несколько вариантов:
1. Проверьте, что в вашей системе установлен пакет acpid (Advanced Configuration and Power Interface daemon), который отвечает за обработку событий питания. Если он не установлен, выполните команду `sudo zypper install acpid` для его установки.
2. Попробуйте выполнить выключение с использованием команды `sudo shutdown -h now`. Эта команда отправляет сигнал выключения напрямую процессу init.
3. Если предыдущие шаги не помогли, попробуйте добавить параметр ядра в файле конфигурации загрузчика. Откройте файл `/etc/default/grub` с помощью текстового редактора (например, `sudo nano /etc/default/grub`) и найдите строку, начинающуюся с `GRUB_CMDLINE_LINUX_DEFAULT`. Добавьте к этой строке параметр `acpi=force`, сохраните изменения и выполните команду `sudo update-grub`. После перезагрузки системы попробуйте выполнить выключение.
4. Если вы используете UEFI загрузчик, попробуйте добавить параметр `acpi_osi=` с различными значениями (например, `"Windows 2021"` или `'!Windows 2019'`) в файле `/etc/default/grub` и выполнить обновление загрузчика с помощью команды `sudo update-grub`.
Если ни один из этих вариантов не помог вам, рекомендуется обратиться к официальной документации OpenSUSE или поискать решение в сообществе пользователей OpenSUSE.