сервисная единица systemd перестала работать на запуске

Я хотел изменить определенные powertop параметрические усилители на запуске Ubuntu 17.04, поэтому я создал сценарий оболочки в /usr/sbin/ и сделанный этим исполняемый файл:

#!/bin/sh
echo 'min_power' > '/sys/class/scsi_host/host1/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host2/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host5/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host3/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host4/link_power_management_policy';
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save';
echo 'auto' > '/sys/bus/i2c/devices/i2c-0/device/power/control';
echo 'auto' > '/sys/bus/i2c/devices/i2c-1/device/power/control';
echo 'auto' > '/sys/bus/i2c/devices/i2c-2/device/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.6/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:02.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.4/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:17.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:16.0/power/control';
ethtool -s  enp0s31f6 wol d
exit 0

Затем я сделал сервисную единицу в /etc/systemd/system :

[Unit]
Description=PowerTOP

[Service]
ExecStart=/usr/sbin/powertop-stup.sh

[Install]
WantedBy=multi-user.target

и включил его с sudo systemctl enable powertop_start.service но после перезагрузки это не работает.

Если я запускаю сервис вручную после начальной загрузки с sudo systemctl start powertop_start.service это работает безупречно. Также, когда я запускаю сам сценарий оболочки, он работает, но автоматически на начальной загрузке он ничего не делает.

4
задан 5 November 2017 в 09:11

1 ответ

Я не знаю, почему Ваш сервис не работает, но я верю стандартному способу внести изменения в /sys при начальной загрузке должен использовать sysfsutils, таким образом, я предполагаю что в качестве альтернативного подхода.

Пакет не может быть установлен по умолчанию, поэтому сначала сделать:

sudo apt install sysfsutils

теперь отредактируйте файл /etc/sysfs.conf, например:

sudoedit /etc/sysfs.conf

и добавьте эти строки в конец его

class/scsi_host/host1/link_power_management_policy = min_power
class/scsi_host/host2/link_power_management_policy = min_power
class/scsi_host/host0/link_power_management_policy = min_power
class/scsi_host/host5/link_power_management_policy = min_power
class/scsi_host/host3/link_power_management_policy = min_power 
class/scsi_host/host4/link_power_management_policy = min_power
module/snd_hda_intel/parameters/power_save = 1
bus/i2c/devices/i2c-0/device/power/control = auto
bus/i2c/devices/i2c-1/device/power/control = auto
bus/i2c/devices/i2c-2/device/power/control = auto
bus/pci/devices/0000:00:1d.0/power/control = auto
bus/pci/devices/0000:00:1f.3/power/control = auto
bus/pci/devices/0000:00:00.0/power/control = auto
bus/pci/devices/0000:00:1f.6/power/control = auto
bus/pci/devices/0000:00:02.0/power/control = auto
bus/pci/devices/0000:00:14.0/power/control = auto
bus/pci/devices/0000:00:1f.4/power/control = auto
bus/pci/devices/0000:00:17.0/power/control = auto
bus/pci/devices/0000:00:1f.2/power/control = auto
bus/pci/devices/0000:00:1c.0/power/control = auto
bus/pci/devices/0000:00:1f.0/power/control = auto
bus/pci/devices/0000:00:16.0/power/control = auto

Сохраните файл и выход и перезагрузку.

Это оставляет Ваш ethtool команда, которую у меня нет решения для, но Вы могли бы видеть, будет ли systemd работать только что команда для Вас, как детализировано в этом ответе muru.

2
ответ дан 1 December 2019 в 10:16

Другие вопросы по тегам:

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