после прописи этой команды выпадает ошибка
Поэкспериментировал у себя. С удивлением обнаружил, что прямая подача команд в опцию ExecStart отрабатывает из рук вон плохо. Ну да зато скрипт можно этой опции скормить. Будем "достраивать". Выполняем нижеприведенные действия в нижеприведенном порядке:
1. Создаем скрипт. Открыть терминал (Ctrl+Alt+T), ввести в него команду:
sudo nano /opt/my_wifi_restart.sh
Окно терминала превратится в окно редактора nano. Ввести туда такой код:
#!/bin/bash
rmmod -f iwlmvm
rmmod -f iwlwifi
sleep 2
modprobe iwlwifi
Нажать
Ctrl+X, далее нажать
Y, далее нажать
Enter. Для проверки вводим в терминал
cat /opt/my_wifi_restart.sh
Должен появиться только что введенный текст. Делаем скрипт выполняемым:
sudo chmod +x /opt/my_wifi_restart.sh
2. Изменяем наш "новоиспеченный" юнит. Систему не устраивал синтаксис команд, которые мы (Вы с моей подачи) пытались ей выдавать. Поэтому изменим тактику. В том же окне терминала вводим команду:
sudo nano /etc/systemd/system/restart_iwlwifi.service
В окне редактора nano видим загруженный
код, который нам предстоит модифицировать. Находим строку
ExecStart=rmmod -f iwlmvm && rmmod -f iwlwifi && sleep 2 && modprobe iwlwifi
Заменяем ее на строку
ExecStart=/opt/my_wifi_restart.sh
В итоге после этих действий файл /etc/systemd/system/restart_iwlwifi.service должен принять вид:[Unit]
Description=Restart iwlwifi after suspend
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target
[Service]
Type=oneshot
ExecStart=/opt/my_wifi_restart.sh
[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
Нажимаем
Ctrl+X, подтверждаем намерение сохранить файл клавишей
Y, подтверждаем имя файла
/etc/systemd/system/restart_iwlwifi.service нажатием клавиши
Enter. Когда окно редактора уйдет, и появится в окне терминала командная строка, выполняем
cat /etc/systemd/system/restart_iwlwifi.service
Сверяем полученный ответ с тем кодом, что под спойлером (должно быть одно и то же).
3. Заставим систему воспринять введенные нами изменения. Для этого в том же терминале выполняем последовательно:
systemctl daemon-reload
systemctl restart restart_iwlwifi.service
systemctl status restart_iwlwifi.service
При вводе второй команды из последней группы у Вас "ляжет" и "поднимется" wifi. При вводе последней команды Вы получите текущий статус сервиса. Он по идее должен быть "Loaded: loaded" и "Active: inactive (dead)". Последней строчкой будет "Started Restart iwlwifi after suspend". Если там что-то не так - прошу показать этот лог. И да: лог будет отображаться в терминале до тех пор, пока Вы не нажмете на клавиатуре клавишу
Q в окне терминала.
Если ошибок не видно, - можно попробовать "уснуть" и "проснуться". WiFi должен в этот раз автоматически перезапуститься после пробуждения.