GUI'den “Kapat” a bastığımda ne olur?


15

Bir süredir başımı buna çarpıyorum. Bu soru ile ilgili . Linux kutumu GUI'den kapatmayı seçtiğimde tam olarak ne olduğunu öğrenmek istiyorum. Bu (hiç değilse) belgelenmemiş gibi görünüyor.

İdeal olarak, DE ve OS agnostik bir cevap bekliyorum. Bunu engelleyerek, Mandriva 2010.1 ve Debian 6.x (Squeeze) ve 7.0 (Wheezy) 'nin tüm Gnome çalıştıran özel durumuyla ilgileniyorum. (Eğer dikkat ediyorsanız, bu Gnome 2 ve Gnome 3)

Temel olarak, davranışlarını değiştirebilmem için "Kapat" veya "Yeniden Başlat" a bastığımda hangi komut / komut dosyası / komut dizisi başlatıldığını bilmek istiyorum. Baktığım bazı forum gönderileri hacklemeyi önerir, /etc/polkit-1/*ancak bu dizin yapısı sadece Debian (Squeeze) kutumdaki bir iskelet.

Biri yardım edebilir mi?


DÜZENLE

Şimdiye kadar denediklerim

  • shutdownYürütülebilir dosyayı kendi komut dosyam ile değiştirdim . Bu işe yaramaz: shutdownGnome tuşuna bastığımda komut dosyamı yürütmeden oturumu kapatır.
  • Gnome 2 menüsünü düzenlemeyi denedim. Sevinç yok: "Kapat", "Oturumu kapat" ve "Ekranı Kilitle" seçenekleri menü düzenleyicisinde görünmüyor.
  • Baktım, /usr/share/menuorada hiçbir şey yararlı.

Çözüm için olası yollar

  • straceGUI seçeneklerini kullanma (bu mümkün mü?)
  • Adlı shutdownkişinin kaynak koduna bakma
  • Adlı gnome-sessionkişinin kaynak koduna bakma

Güncelleme

Aşağıdaki cevap hakkındaki yorumlarıma göre, altındaki polkiteylemlere baktım /usr/share/polkit-1/actions/ve (dosyada org.freedesktop.consolekit.policy) org.freedesktop.consolekit.system.stop-multiple-usersmesajı atan bir eylem buldum

System policy prevents stopping the system when other users are logged in

Ben ( org.freedesktop.*adlandırma konvansiyonu nedeniyle ) bu D-BUS aracılığıyla DM gönderilen bir tür sinyal olduğunu düşünüyorum . Ayrıca, diğer kullanıcılar oturum açmışken grafiksel olarak kapanmaya çalışırken bu mesaj görünür, bu nedenle onu tetikleyen mekanizmanın GUI'den "Kapat" veya "Kapat" seçildiğinde aynı mekanizma tetiklenmesi gerekir.

Herkes onaylayabilir / reddedebilir mi? Bu sinyali bir şekilde yakalama veya değiştirme olasılığı var mı?


Ne yapmaya çalışıyorsun? Bir düzenlemeyi ekleyebilir olabilir /etc/init.d/rc.localiçin durdu edilirken bir senaryo diyoruz .
depquid

@depquid Yapmaya çalıştığım eski soruya bağlı olduğum soru: Yerel olarak oturum açmış bir kullanıcının başka bir kullanıcının SSH oturumunu gizlemesini önlemeye çalışıyorum.
Joseph R.

Yanıtlar:


9

Görüntü Yöneticinize bağlıdır! (ör. KDM, GDM)

Lütfen DM'nizin kök olarak çalıştığını unutmayın! (oturum işleminizi oturum açtığınız kullanıcı olarak çalıştırmak için kök ayrıcalıklarına ihtiyaç duyar)

KDE veya GNOME'da kapat'ı tıklattığınızda, DE oturumunuz sona erdikten sonra DM'nize kapanması veya yeniden başlatılması için bir sinyal gönderir. Ardından, DE'niz her programın bitmesini söyler ve diğer tüm işlemler sona erdiğinde (veya bir zaman aşımı süresi dolduğunda) DE'nizin son işlemi - oturum işlemi - sona erer.

Oturum işlemi, X11 oturumunda başlatılan ilk işlemdir. Öldürüldüğünde veya sona erdiğinde, oturum sona erer. Hiç X olmadan DE'yi çalıştırırken xterm'i gördünüz mü? Bu bir oturum sürecidir. Bu işleme kdeinitKDE ve gnome-sessionGNOME'da denir .

Oturum sona erdiğinde, kontrol DM'nize geri döner (X işleminin sona ermesini bekliyordu) ve DE'nin kendisine ne söylediğini kontrol eder. Kapatmasını veya yeniden başlatılmasını söylerse, bunu yapacaktır. Diğer durumda, X'te yeni bir giriş ekranı başlatacaktır.

Bu, geçmişte karşılaşmış olabileceğiniz sorunlarla da ilişkilidir, bazı DE'ler diğer DM'lerle birlikte kullanıldığında oturumu kapatmak için kapatılamaz veya yeniden başlatılamaz.

Her durumda, bu o kadar kötü belgelenmemiş. GDM, komutun daha önce söylediğim gibi kapanmasını söylemenizi sağlayan manuel bir sayfaya sahiptir ( gdm-control). KDM de mükemmel belgelere sahiptir ve benzer (biraz daha karmaşık) bir yardımcı programa sahiptir kdmctl.


PolicyKit olmadan kapatma ve yeniden başlatma mümkündür, ancak PolicyKit günümüzde bilgisayarlara root olmadan, askıya alma veya hazırda bekletme olmadan disk takma gibi sistemlerde gereken birçok amaca hizmet eder. Ve ikisi de kötü belgelenmemiş!

PolicyKit'in ne olduğu ve nasıl çalıştığı hakkında daha fazla bilgi edinmek istiyorsanız buna göz atın: http://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html


Umut verici geliyor. Dokümanlara bağlantılar için teşekkürler. Bu kılavuzların kapsamlı ve net olduğuna şüphe yok, ancak olmayabilir de. Cevabınız, ekran yöneticisinin bu sorunla birlikte bahsettiğini ilk kez gördüğüm için tam olarak yaygın bir bilgi değil. Bunu deneyeceğim ve size haber vereceğim ...
Joseph R.

TAMAM. gdm-controlyardımcı olmadı. PolicyKit'te verdiğiniz belgeler daha umut verici görünüyor. Bunu inceleyeceğim ve özel bir kural uygulayıp uygulayamayacağımı göreceğim. Devam edecek ...
Joseph R.

1
Biraz okuma yaptım (gözden geçirme, daha fazla gibi) ve eğer yanlışsam lütfen beni düzeltin: DE, kapatılması istendiğinde, D-BUS'taki polkit aracılığıyla DM'ye bir mesaj gönderecek. Kimlik doğrulaması beklemede, oturum sonlandırılabilir veya istek iptal edilebilir. Bu, etkin olmayan kullanıcılar ve etkin kullanıcı isteğini iptal etmek için ayarlanmıştır bölümünde polkitadı verilen bir eylemde tanımlanır . Soru, bu eylemi tanımlayan nedir? Tam olarak ne yapıyor? org.freedesktop.consolekit.system.stop-multiple-users/usr/share/polkit-1/actionsauth_admin_keep
Joseph R.

@don_crissti Şimdi anladığım kadarıyla. İlgilendiğim şey tam olarak bu "işaret" tir. Gönderen müşteri nedir?
Joseph R.

@don_crissti Bu yorumu bir takip için diğer soruma taşımak ister misiniz?
Joseph R.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.