Как убить приложение, которое избивает жесткий диск?

Не знаю почему, но проблема заключается в попытке удалить и добавить модуль при выходе из спящего режима .

Решение 1

Я столкнулся с той же проблемой, что и вы, и ваш скрипт fix-touchpad.shне работал, пока я не попытался удалить модуль перед переходом в спящий режим и добавить его обратно после.

Основываясь на этом ответе на форуме Fedora, это может быть что-то вроде:

$ cat /usr/lib/systemd/system-sleep/fix-touchpad.sh
#!/bin/bash
[ "$1" = "pre" ] && modprobe -r i2c_hid
[ "$1" = "post" ] && modprobe i2c_hid
exit 0

Решение 2

Я также нашел другой способ выполнения кода в режиме гибернации/возобновления, и он также работал только при удалении модуля перед переходом в режим гибернации . Как описано в Arch's Wiki Управление питанием #Перехватчики сна , вы можете создать службу systemd, которая запускается службой сна.

Опираясь на инструкции вики, я придумал следующее:

$ cat /etc/systemd/system/root-resume.service
[Unit]
Description=(un)load module i2c_hid when going to/from sleep
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=modprobe -r i2c_hid
ExecStop=modprobe i2c_hid

[Install]
WantedBy=sleep.target

Служба должна быть включена с помощью systemd enable root-resume. Обратите внимание, что ExecStart будет выполняться до sleep.target, а ExecStop будет выполняться при возобновлении.

Решение 3

Проверьте пакет systemd-suspend-modulesв AUR . По сути, он определяет службу, которая выполняет Решение 1 для каждого модуля, указанного в файле конфигурации пользователя. Это может быть более подходящим для других модулей, поскольку «рекурсивно выгружает данные модули и все, что от них зависит» (https://github.com/parkouss/systemd-suspend-modules/blob/master/suspend-modules#L19).

-1
17.07.2021, 16:51
0 ответов

Теги

Похожие вопросы