Yanıtlar:
Bunu yapmak için başlıca iki yaklaşım vardır:
systemdhizmet aracılığıyla çalıştırın .Bu nedenle iki dosyaya ihtiyacınız vardır: script ve .servicedosya (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 .servicedosyayı 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 vgaoffgpu, örneğin kapalı sadece güçler:
exec blah-blah pwrOFF etc
o zaman içeriği vgaoff.serviceolmalı:
[Unit]
Description=Power-off gpu
[Service]
Type=oneshot
ExecStart=/usr/bin/vgaoff
[Install]
WantedBy=multi-user.target
Eğer vgaoffGPU 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.serviceolmalı:
[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.servicekılavuz sayfasına bakınız .
Sorun .
Buradan başlayın:
Bir systemdhizmetin tam günlüğünü nasıl görebilirim ?
systemdservis çı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.