Yagmur
Yeni Üye
- Katılım
- 11 Nis 2025
- Mesajlar
- 9
- Tepkime puanı
- 9
Sistem kapatılmadan önce bir onay penceresi göstermek istedim; bu, Gnome arayüzünü kullanarak kapatma işlemi yapıldığında zaten mevcut bir özelliktir. Arka planda, "gnome-session-quit --power-off" komutu çalıştırılıyor ve arayüz kapatma onayı için bir iletişim kutusu gösteriyor; 70 saniye içinde yanıt alınmazsa sistem otomatik olarak kapanıyor. Benzer komutu bir systemd servisi içinde de çalıştırabileceğimi düşündüm. Ancak, systemd, DISPLAY ve XAUTHORITY ortam değişkenlerini sağlasa da, X11 ekranına bağlanamama ile ilgili hatalar verdi.
Bir forum gönderisinde, Gnome masaüstünde otomatik başlatma uygulamalarının bulunduğu ~/.config/autostart dizinindeki .desktop dosyalarından bahsedildiğini gördüm. Bu nedenle, kapatma şartı sağlanana kadar her 40 saniyede bir uyku döngüsü çalıştıran bir komut dosyası çağıran bir .desktop dosyası oluşturarak bu durumu kendi lehime çevirmeye karar verdim. Şart sağlandığında, betik döngüden çıkıyor ve "gnome-session-quit" komutunu çalıştırıyor.
Bu bütün karmaşanın sebebi ne mi? Bu sistem, yedek sunucu görevinin yanı sıra bir medya merkezi olarak da kullanılıyor. Yedek sunucu görevinde, cihaz her gün belirli bir saatte açılıyor, yedeklemeyi yapıyor ve sonra kapanıyor. Fakat medya merkezi olarak kullanıldığında, filmin heyecanlı bir anında sistemin kapanması hiç hoş değil. Bu yüzden, bu betik, kullanıcının müdahale edip kapatmayı iptal edebileceği bir grafiksel onay penceresi gösteriyor. En güzel yanı, ekran kapalı olsa bile çalışıyor olması. HDMI kablosunun takılı olması gerekebilir, fakat başka bir şeye ihtiyaç olduğunu sanmıyorum.
İşte .desktop otomatik başlatma dosyası ve komut dosyası:
Kod:
[Desktop Entry]
Name = Yedekleme Sistemi Kapatma Betiği
Comment = /var/urbackup dizinindeki dosyayı kontrol et. Varsa dosyayı sil ve sistemi kapat.
Exec = /home/user/Documents/Scripts/urbackup.sh
Terminal = false
Type = Application
X-GNOME-Autostart-enabled = true
Komut dosyası kodu:
Kod:
#!/bin/bash
while [ ! -f /var/urbackup/shutdown_now ];
do
sleep 40
done
sudo -u urbackup rm -R /var/urbackup/shutdown_now
gnome-session-quit --power-off
Medya merkezimi yedek sunucusu olarak kullanmama karşı çıkmadan önce, vs vs… bu kuruluşun daha önce hiç yedeklemesi yoktu. Hiçbir şeyden iyidir diye düşünüyorum.
Daha iyi bir optimizasyon yolu bilen varsa, dinlemeye hazırım. Umarım bu, ileride benzer bir sorunla karşılaşanlara yardımcı olur.
Bir forum gönderisinde, Gnome masaüstünde otomatik başlatma uygulamalarının bulunduğu ~/.config/autostart dizinindeki .desktop dosyalarından bahsedildiğini gördüm. Bu nedenle, kapatma şartı sağlanana kadar her 40 saniyede bir uyku döngüsü çalıştıran bir komut dosyası çağıran bir .desktop dosyası oluşturarak bu durumu kendi lehime çevirmeye karar verdim. Şart sağlandığında, betik döngüden çıkıyor ve "gnome-session-quit" komutunu çalıştırıyor.
Bu bütün karmaşanın sebebi ne mi? Bu sistem, yedek sunucu görevinin yanı sıra bir medya merkezi olarak da kullanılıyor. Yedek sunucu görevinde, cihaz her gün belirli bir saatte açılıyor, yedeklemeyi yapıyor ve sonra kapanıyor. Fakat medya merkezi olarak kullanıldığında, filmin heyecanlı bir anında sistemin kapanması hiç hoş değil. Bu yüzden, bu betik, kullanıcının müdahale edip kapatmayı iptal edebileceği bir grafiksel onay penceresi gösteriyor. En güzel yanı, ekran kapalı olsa bile çalışıyor olması. HDMI kablosunun takılı olması gerekebilir, fakat başka bir şeye ihtiyaç olduğunu sanmıyorum.
İşte .desktop otomatik başlatma dosyası ve komut dosyası:
Kod:
[Desktop Entry]
Name = Yedekleme Sistemi Kapatma Betiği
Comment = /var/urbackup dizinindeki dosyayı kontrol et. Varsa dosyayı sil ve sistemi kapat.
Exec = /home/user/Documents/Scripts/urbackup.sh
Terminal = false
Type = Application
X-GNOME-Autostart-enabled = true
Komut dosyası kodu:
Kod:
#!/bin/bash
while [ ! -f /var/urbackup/shutdown_now ];
do
sleep 40
done
sudo -u urbackup rm -R /var/urbackup/shutdown_now
gnome-session-quit --power-off
Medya merkezimi yedek sunucusu olarak kullanmama karşı çıkmadan önce, vs vs… bu kuruluşun daha önce hiç yedeklemesi yoktu. Hiçbir şeyden iyidir diye düşünüyorum.
Daha iyi bir optimizasyon yolu bilen varsa, dinlemeye hazırım. Umarım bu, ileride benzer bir sorunla karşılaşanlara yardımcı olur.