Відповіді:
Для цього є переважно два підходи:
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 на декількох моделях ноутбуків, подивіться, чи можна замінити команди, які використовуються там, чимось таким, як ви пропонуєте. Крім того, для відновлення вихідного файлу ви зазвичай перевстановлюєте пакет, який йому належить.