Yanıtlar:
Bunu yapmak için başlıca iki yaklaşım vardır:
systemd
hizmet aracılığıyla çalıştırın .Bu nedenle iki dosyaya ihtiyacınız vardır: script ve .service
dosya (birim konfigürasyon dosyası).
Komut dosyanızın çalıştırılabilir olduğundan ve ilk satırın ( shebang ) olduğundan emin olun #!/bin/sh
. Sonra .service
dosyayı oluşturun /etc/systemd/system
(düz bir metin dosyası, hadi arayalım vgaoff.service
).
Örneğin:
/usr/bin/vgaoff
/etc/systemd/system/vgaoff.service
Şimdi, birim dosyasını düzenleyin. İçeriği, kodunuzun nasıl çalıştığına bağlıdır:
Eğer vgaoff
gpu, örneğin kapalı sadece güçler:
exec blah-blah pwrOFF etc
o zaman içeriği vgaoff.service
olmalı:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff
[Install]
WantedBy=multi-user.target
Eğer vgaoff
GPU kapatmak için kullanılır ve aynı zamanda bilgisayarı yeniden güç vermek için, örneğin:
start() {
exec blah-blah pwrOFF etc
}
stop() {
exec blah-blah pwrON etc
}
case $1 in
start|stop) "$1" ;;
esac
o zaman içeriği vgaoff.service
olmalı:
[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
Kapatmak için:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo OFF > /whatever/vga_pwr_gadget/switch"
[Install]
WantedBy=multi-user.target
Kapatıp açmak için:
[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
Dosyalarla işiniz bittiğinde servisi etkinleştirin:
systemctl enable vgaoff.service
Bir sonraki açılışta otomatik olarak başlayacaktır. Tek seferde servisi etkinleştirip başlatabilirsiniz.
systemctl enable --now vgaoff.service
systemd v.220
(eski kurulumlarda bunu manuel olarak başlatmanız gerekir) itibariyle .
Daha fazla ayrıntı için systemd.service
kılavuz sayfasına bakınız .
Sorun .
Buradan başlayın:
Bir systemd
hizmetin tam günlüğünü nasıl görebilirim ?
systemd
servis çıkış kodları ve durum bilgisi açıklaması
echo SOMETHING > /some/file
(veya gerçekte herhangi bir emir) sistemlerinde bir şeyler çalıştırmaya başlamadan önce CLI'nin temellerini öğrenmelidirler. Bu bir yana, FYI, birkaç dizüstü bilgisayar modelinde dGPU'yu nasıl kapatacağınızı okuyun , orada kullanılan komutların önerdiğiniz gibi bir şeyle değiştirilip değiştirilemeyeceğini görün. Ayrıca, orijinal dosyayı geri yüklemek için genellikle kendisine ait olan paketi yeniden yüklersiniz.