Odpowiedzi:
Istnieją głównie dwa podejścia do tego:
systemdusługi.Dlatego potrzebujesz dwóch plików: skryptu i .servicepliku (plik konfiguracji jednostki).
Upewnij się, że skrypt jest wykonywalny, a pierwsza linia ( shebang ) to #!/bin/sh. Następnie utwórz .serviceplik w /etc/systemd/system(nazwijmy go zwykłym plikiem tekstowym vgaoff.service).
Na przykład:
/usr/bin/vgaoff/etc/systemd/system/vgaoff.serviceTeraz edytuj plik jednostki. Jego zawartość zależy od sposobu działania skryptu:
Jeśli vgaoffpo prostu wyłącza GPU, np .:
exec blah-blah pwrOFF etc
wówczas treść vgaoff.servicepowinna być:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff
[Install]
WantedBy=multi-user.target
Jeśli vgaoffjest używany do wyłączenia GPU, a także do ponownego włączenia, np .:
start() {
exec blah-blah pwrOFF etc
}
stop() {
exec blah-blah pwrON etc
}
case $1 in
start|stop) "$1" ;;
esac
wówczas treść vgaoff.servicepowinna być:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff start
ExecStop=/usr/bin/vgaoff stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Aby wyłączyć:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
[Install]
WantedBy=multi-user.target
Aby wyłączyć i włączyć:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
ExecStop=/bin/sh -c "echo ON > /whatever/vga_pwr_gadget/switch"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Gdy skończysz z plikami, włącz usługę:
systemctl enable vgaoff.service
Rozpocznie się automatycznie przy następnym uruchomieniu. Możesz nawet włączyć i uruchomić usługę za jednym razem
systemctl enable --now vgaoff.service
od systemd v.220(w starszych konfiguracjach będziesz musiał uruchomić go ręcznie).
Aby uzyskać więcej informacji, patrz systemd.servicestrona instrukcji.
Rozwiązywanie problemów .
Zacznij tutaj:
jak wyświetlić pełny dziennik systemdusługi?
systemdkody wyjścia usług i objaśnienie informacji o stanie
echo SOMETHING > /some/filewłaściwie robi (lub jakakolwiek inna komenda), powinni zapoznać się z podstawami CLI przed próbą uruchomienia rzeczy w swoich systemach. Poza tym, FYI, przeczytaj, jak wyłączyć dGPU na kilku modelach laptopów, zobacz, czy użyte tam polecenia można zastąpić czymś, co sugerujesz. Ponadto, aby przywrócić oryginalny plik, zwykle ponownie instalujesz pakiet, który jest jego właścicielem.