Ho uno script .sh, cercando di rendere permanenti le modifiche del powertop.
'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control';
i comandi in questo .sh-script sono tutti di questo tipo.
Ho un servizio systemd in / etc / systemd / system con questo contenuto:
[Unit]
Description=My Script
After=network.target
[Service]
Type=forking
ExecStart=/home/my_username/.autostart_sudo.sh
[Install]
WantedBy=multi-user.target
Lo script ".autostart_sudo.sh" viene chiamato correttamente dopo l'avvio, (ad esempio "bluetooth off" -comando in questo file viene chiamato perfeclty) ma i comandi echo- & gt; non vengono chiamati correttamente.
Ho notato che digitando
sudo 'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control';
in un terminale dà un errore di restrizione, ma
sudo su
'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control';
lavori.
come devo cambiare il mio systemd + bash-script per far funzionare i powertop-change all'avvio?
Grazie in anticipo!
Modificare:
Va bene, provo a descrivere di nuovo il flusso: Ho ricevuto il servizio systemd pubblicato in cima a questo post. Questo servizio chiama ".autostart_sudo.sh" nel mio / home / utente /.
Ci sono molti comandi in questo .autostart_sudo.sh con questo aspetto:
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:04:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:03:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:03.3/power/control';
(...)
thinkfan start
Il "thinkfan start" ha bisogno anche dei privilegi di root per iniziare correttamente, questo funziona, ma i "echo" -commands non lo fanno.
Ho anche provato
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:1d.0/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:1a.7/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:1a.2/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:02.0/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:02.1/power/control;'
non funziona neanche: /
Le cose sudo-test che ho menzionato sopra erano solo dei test in un terminale .
qualche consiglio?
echo 'auto' | sudo tee 'file'
lavoro?
'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control'
nel tuo script oecho 'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control'
? In ogni caso, se lo script è chiamato da systemd,sudo
non dovrebbe essere necessario. Funziona se solo tuecho
i comandi nei file, con nosudo
?