Ada dua pendekatan utama untuk melakukan itu:
- Jika Anda harus menjalankan skrip, Anda tidak mengonversinya melainkan menjalankan skrip melalui
systemd
layanan.
Karena itu Anda memerlukan dua file: skrip dan .service
file (file konfigurasi unit).
Pastikan skrip Anda dapat dieksekusi dan baris pertama ( shebang ) adalah #!/bin/sh
. Kemudian buat .service
file dalam /etc/systemd/system
(file teks biasa, sebut saja vgaoff.service
).
Sebagai contoh:
- naskah:
/usr/bin/vgaoff
- file unit:
/etc/systemd/system/vgaoff.service
Sekarang, edit file unit. Isinya tergantung pada cara kerja skrip Anda:
Jika vgaoff
hanya mematikan gpu, misalnya:
exec blah-blah pwrOFF etc
maka isi vgaoff.service
harus:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff
[Install]
WantedBy=multi-user.target
Jika vgaoff
digunakan untuk mematikan GPU dan juga untuk menghidupkan kembali, misalnya:
start() {
exec blah-blah pwrOFF etc
}
stop() {
exec blah-blah pwrON etc
}
case $1 in
start|stop) "$1" ;;
esac
maka isi vgaoff.service
harus:
[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
- Untuk sebagian besar kasus sepele, Anda dapat melakukannya tanpa skrip dan menjalankan perintah tertentu secara langsung:
Untuk mematikan:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
[Install]
WantedBy=multi-user.target
Untuk mematikan dan menghidupkan:
[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
Setelah selesai dengan file, aktifkan layanan:
systemctl enable vgaoff.service
Ini akan mulai secara otomatis pada boot berikutnya. Anda bahkan dapat mengaktifkan dan memulai layanan sekaligus
systemctl enable --now vgaoff.service
pada systemd v.220
(pada setup yang lebih tua Anda harus memulainya secara manual).
Untuk lebih jelasnya lihat systemd.service
halaman manual.
Pemecahan masalah .
Mulai di sini:
Bagaimana cara melihat log lengkap systemd
layanan?
systemd
kode keluar layanan dan penjelasan informasi status
echo SOMETHING > /some/file
dilakukan (atau perintah lain apa pun sebenarnya) harus membiasakan diri dengan dasar-dasar CLI sebelum mencoba menjalankan hal-hal pada sistem mereka. Selain itu, FYI, baca cara mematikan dGPU pada beberapa model laptop, lihat apakah perintah yang digunakan di sana dapat diganti dengan sesuatu seperti yang Anda sarankan. Juga, untuk mengembalikan file asli, Anda biasanya menginstal ulang paket yang memilikinya.