Linux Gnome GUI Kapatma İstemi

81cocuk

Yeni Üye
Kayıtlı
Mesajlar
2
Tepkime puanı
0
Puanları
2
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.

1735048355668.png
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.)
 
gnome-session-quit yerine şunun gibi bir şey denediniz mi

Kod:
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true

Yani bir betikte döngüye girmek yerine bir systemd servis dosyasını kullanmayı denedin mi (bunun gnome'da açılır pencereyle sonuçlandığını varsayarsak)
 
gnome-session-quit yerine şunun gibi bir şey denediniz mi

Kod:
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true

Yani bir betikte döngüye girmek yerine bir systemd servis dosyasını kullanmayı denedin mi (bunun gnome'da açılır pencereyle sonuçlandığını varsayarsak)

deneyeceğim güncelleme ile bilgi vereceğim size
 
Geri
Üst