Antworten:
Hierfür gibt es hauptsächlich zwei Ansätze:
systemdDienst aus.Dazu benötigen Sie zwei Dateien: das Skript und die .serviceDatei (Gerätekonfigurationsdatei).
Stellen Sie sicher, dass Ihr Skript ausführbar ist und die erste Zeile (der Shebang ) ist #!/bin/sh. Dann erstellen Sie die .serviceDatei in /etc/systemd/system(eine reine Textdatei, nennen wir es vgaoff.service).
Zum Beispiel:
/usr/bin/vgaoff/etc/systemd/system/vgaoff.serviceBearbeiten Sie nun die Unit-Datei. Der Inhalt hängt davon ab, wie Ihr Skript funktioniert:
Wenn Sie vgaoffnur die GPU ausschalten, zB:
exec blah-blah pwrOFF etc
dann sollte der Inhalt von vgaoff.servicesein:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff
[Install]
WantedBy=multi-user.target
Wird vgaoffverwendet, um die GPU auszuschalten und auch wieder einzuschalten, z. B .:
start() {
exec blah-blah pwrOFF etc
}
stop() {
exec blah-blah pwrON etc
}
case $1 in
start|stop) "$1" ;;
esac
dann sollte der Inhalt von vgaoff.servicesein:
[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
Ausschalten:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
[Install]
WantedBy=multi-user.target
So schalten Sie das Gerät aus und wieder ein:
[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
Sobald Sie mit den Dateien fertig sind, aktivieren Sie den Dienst:
systemctl enable vgaoff.service
Beim nächsten Start wird es automatisch gestartet. Sie können den Dienst sogar auf einmal aktivieren und starten
systemctl enable --now vgaoff.service
ab systemd v.220(bei älteren Setups müssen Sie es manuell starten).
Weitere Details finden Sie auf der systemd.serviceManpage.
Fehlerbehebung .
Beginnen Sie hier:
Wie wird das vollständige Protokoll eines systemdDienstes angezeigt?
systemdService-Exit-Codes und Erklärung der Statusinformationen
echo SOMETHING > /some/filesie tun (oder überhaupt keinen anderen Befehl), sollten sich mit den Grundlagen von CLI vertraut machen, bevor Sie versuchen, Inhalte auf ihren Systemen auszuführen. Abgesehen davon lesen Sie, wie Sie dGPU auf mehreren Laptop-Modellen ausschalten, ob die dort verwendeten Befehle durch etwas ersetzt werden könnten, wie Sie es vorschlagen. Um die ursprüngliche Datei wiederherzustellen, installieren Sie in der Regel das zugehörige Paket neu.