Відповіді:
Для цього є переважно два підходи:
systemd
сервіс.Тому вам потрібні два файли: скрипт і .service
файл (файл конфігурації блоку).
Переконайтеся, що ваш сценарій виконується, і перший рядок ( shebang ) #!/bin/sh
. Потім створіть .service
файл у /etc/systemd/system
(звичайний текстовий файл, назвемо його vgaoff.service
).
Наприклад:
/usr/bin/vgaoff
/etc/systemd/system/vgaoff.service
Тепер відредагуйте файл одиниці. Його зміст залежить від того, як працює ваш сценарій:
Якщо vgaoff
просто вимкнути gpu, наприклад:
exec blah-blah pwrOFF etc
то зміст vgaoff.service
має бути:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff
[Install]
WantedBy=multi-user.target
Якщо vgaoff
використовується для вимкнення GPU, а також для його включення, наприклад:
start() {
exec blah-blah pwrOFF etc
}
stop() {
exec blah-blah pwrON etc
}
case $1 in
start|stop) "$1" ;;
esac
то зміст vgaoff.service
має бути:
[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
Щоб вимкнути живлення:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
[Install]
WantedBy=multi-user.target
Щоб вимкнути та увімкнути:
[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
Після завершення роботи з файлами увімкніть сервіс:
systemctl enable vgaoff.service
Він запуститься автоматично при наступному завантаженні. Ви навіть можете ввімкнути та запустити послугу за один раз
systemctl enable --now vgaoff.service
станом на systemd v.220
(для старих налаштувань доведеться запускати його вручну).
Детальніше див systemd.service
. На сторінці керівництва.
Усунення несправностей .
Почніть тут:
Як побачити повний журнал systemd
послуги?
systemd
коди виходу служби та пояснення інформації про стан
echo SOMETHING > /some/file
робить (чи будь-яка інша команда насправді), повинні ознайомитися з основами CLI, перш ніж намагатися запускати матеріали в своїх системах. Окрім цього, FYI, прочитайте, як вимкнути dGPU на декількох моделях ноутбуків, подивіться, чи можна замінити команди, які використовуються там, чимось таким, як ви пропонуєте. Крім того, для відновлення вихідного файлу ви зазвичай перевстановлюєте пакет, який йому належить.