2009-03-10 20 views
6

Son zamanlarda crontab ile çalışıyorum çünkü Intrepid'de gconftool bir dbus arka uç kullanıyor ve bu da crontab'dan kullanıldığında işe yaramıyor demektir.XDG_SESSION_COOKIE ortam değişkeni ne için?

Çalıştırmak için Cron geldiğinde dbus oturum adresini bulması için oturum açtığımda ilgili ortam değişkenlerini dışa aktarmak zorunda kaldım.

Meraktan cron ne görebiliyordu ortamı merak ve benim sahip olduğum tek HOME, LOGNAME, PATH, SHELL, CWD ve bana bu yeni bir, XDG_SESSION_COOKIE çıkıyor. Bu ilginç görünüyor ve birkaç googlings onunla ilgili bir sürü hata ya da diğer özellik istekleri attı ama bana ne yaptığını söyleyen bir şey yok.

İçgüdüm, bu değişkenin, cron işi başlamadan önce verdiğim dosyaya vermem gereken tüm öğeleri bulmak için kullanılabileceğidir.

Sorularım, bu nedenle, a) yapabilir miyim? b) eğer öyleyse, nasıl? ve c) ne (başka) yapar?

Herkese teşekkürler

cevap

6

Bu çok ilginç. Bir çerez ayarlayan ekran yöneticisi olduğunu öğrendim. Bu işlem, ConsoleKit adlı bir daemon tarafından yönetilen bir "oturum" a ait süreçleri kaydetmek için kullanılabilir. Bu hızlı kullanıcı geçişini desteklemektir. KDE4.2.1 sistemim de bunu destekliyor.

this fedora wiki girdisini okuyun.

Bu ortam değişkeni, bazı varlığa erişim izni vermek için DBUS_SESSION_BUS_ADDRESS gibidir (XDG_SESSION_COOKIE, ConsoleKit tarafından yönetilen bir oturum açma oturumunda). yerine o ortam değişkeni olan Örneğin, mevcut oturum için yöneticisini sorabilirsiniz:

$ dbus-send --print-reply --system --type=method_call \ 
    --dest=org.freedesktop.ConsoleKit \ 
    /org/freedesktop/ConsoleKit/Manager \ 
    org.freedesktop.ConsoleKit.Manager.GetCurrentSession 

method return sender=:1.1 -> dest=:1.34 reply_serial=2 
    object path "/org/freedesktop/ConsoleKit/Session1" 
$ 

Manager ayrıca bazı süreç

$ [...].Manager.GetSessionForUnixProcess uint32:4494 

method return sender=:1.1 -> dest=:1.42 reply_serial=2 
    object path "/org/freedesktop/ConsoleKit/Session1" 

Ancak

aittir oturumu için sorgulama destekler, değil Liste veya bir şekilde bazı cron iş ile ilgili değişkenleri içerir. Ancak, dbus-launch dokümantasyonu, libdbus'un otomatik olarak doğru DBUS veri yolu adresini bulacağını söylüyor. Örneğin, dosyalar doğru geçerli dbus oturum adreslerini içeren /home/js/.dbus/session-bus'da depolanır.

İlgili konular