Sistem kapanmadan önce bir açılır pencere istedim. Bu normalde Gnome GUI'sini kullanarak kapattığınızda yapılır. Arka planda olan şey, "gnome-session-quit --power-off" çağrılması ve GUI'nin size kapatmak isteyip istemediğinizi soran bir istem göstermesi ve 60 saniye boyunca kullanıcıdan yanıt alınamazsa cihazın otomatik olarak kapanması. Bunu bir systemd hizmetinden de aynı şekilde çağırabileceğimi varsaydım. Ancak, systemd, DISPLAY ve XAUTHORITY hakkında Ortam değişkenleri sağlamasına rağmen bir X11 ekranına bağlanamama konusunda hatalar verdi. Bir SE gönderisini okurken, Gnome GUI'sinde desktop dosyasının başlangıçta çalıştırıldığı ~/.config/autostart konumunda bulunan bir otomatik başlatma klasörü olduğunu gördüm. Bu yüzden, kapatma koşulu karşılanana kadar her 30 saniyede bir uyku döngüsü çalıştıran bir betik çağıran bir desktop dosyası yazarak bunu kendi avantajıma kullanmaya karar verdim. Karşılandığında, betik döngüden çıkar ve "gnome-session-quit" çağırır. Tüm bu yaygara neden? Bu sistem, bir yedek sunucu olmasının yanı sıra bir HTPC olarak da kullanılıyor. Yedek sunucu durumunda, cihaz her gün belirli bir saatte açılır, yedeklemeyi çalıştırır ve sonra kapanır. Ancak, bir HTPC olarak kullanıldığında, sistemin bir filmin doruk noktasındayken kapanması pek hoş değildir. Bu nedenle, bu betik, kullanıcının etkileşime girebileceği ve kapatmayı iptal edebileceği bir GUI onay iletişim kutusu çıkarır. En iyi yanı, ekran açık olmasa bile bunun işe yaramasıdır. HDMI kablosunun bağlanması gerekebileceğini düşünüyorum, ancak bunun dışında başka bir şeye gerek olduğunu düşünmüyorum. İşte .desktop otomatik başlatma dosyası ve betik.
Komut dosyası için kod:
Herhangi biriniz bana HTPC'yi yedekleme sunucusu olarak kullanmaya karşı çıkmadan önce, vb., vb. Bu kuruluşun daha önce hiçbir tür yedeklemesi yoktu. Her zaman hiçbir şeydense bir şeyi tercih ederim.
Ayrıca, bunu optimize etmenin daha iyi bir yolunu bilen varsa dinlerim.
Umarım bu, gelecekte internette arama yapan birine yardımcı olur. (ancak büyük olasılıkla bir LLM'ye aktarılacak ve sonra kullanılacaktır.)
Kod:
[Desktop Entry]
Name = UrBackup System Shutdown Script
Comment = Test for file in /var/urbackup. If present, delete the file and shutdown the system.
Exec = /home/user/Documents/Scripts/urbackup.sh
Terminal = false
Type = Application
X-GNOME-Autostart-enabled = true
Komut dosyası için kod:
Kod:
#!/bin/bash
while [ ! -f /var/urbackup/shutdown_now ];
do
sleep 30
done
# Eğer dosya yoksa 30 saniye boyunca uykuya dal ve döngüyü tekrarla.
#Eğer dosya varsa, döngüden çık, sonra shutdown_now'ı sil ve son olarak power-off niteliğini başlat.
sudo -u urbackup rm -R /var/urbackup/shutdown_now
gnome-session-quit --power-off
Herhangi biriniz bana HTPC'yi yedekleme sunucusu olarak kullanmaya karşı çıkmadan önce, vb., vb. Bu kuruluşun daha önce hiçbir tür yedeklemesi yoktu. Her zaman hiçbir şeydense bir şeyi tercih ederim.
Ayrıca, bunu optimize etmenin daha iyi bir yolunu bilen varsa dinlerim.
Umarım bu, gelecekte internette arama yapan birine yardımcı olur. (ancak büyük olasılıkla bir LLM'ye aktarılacak ve sonra kullanılacaktır.)