Quickly uygulamama nasıl bir arka plan programı ekleyebilirim?


10

Hızlı bir şekilde bir uygulama oluşturuyorum ve arka planda çalışacak bir daemon eklemek istedim. Bunu nasıl yapıyorsun?


D-Bus'a bir göz atmalısınız.
ADcomp

Lütfen hızlı bir şekilde ana sayfaya bir bağlantı sağlayın. Böyle bir isim ile google olamaz.
dotancohen

Bu deamon ne yapmalı? Herkese açık mı yoksa sadece başvurunuz için mi gerekiyor?
Timo

@dotancohen Tamamlandı. İthalat biti önerdiğim halde Python'da.
8128

@Timo Vigesh için konuşamam, ama ödülüm için sadece başvurum için bir şey arıyorum
8128

Yanıtlar:


1

Bildiğim kadarıyla hızlı bir şekilde çalışan cinleri önlemek veya size yardımcı olmak için belirli bir şey olmadığını biliyorum, ama en az iki seçenek biliyorum / python ile yapabilirsiniz sanırım:

Seçenek # 1: Distutils

NOT: Bunu henüz denemedim :)

  1. daemon betiğinizi binhızlı bir şekilde projenizin dizinine yerleştirin, örneğin:bin/yourapp-launcher

  2. data/yourapp-launcher.desktopdosyaya aşağıdakileri ekleyin :

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
  3. DistUtilsExtra bölümünde setup.pyek düzenleme yapın ve belirtin data_files, örneğin:

    DistUtilsExtra.auto.setup(
    name='hello-ubuntu',
    version='0.1',
    #license='GPL-3',
    #author='Your Name',
    #author_email='email@ubuntu.com',
    #description='UI for managing â¦',
    #long_description='Here a longer description',
    #url='https://launchpad.net/hello-ubuntu',
    cmdclass={'install': InstallAndUpdateDataDirectory},
    data_files=[('/etc/xdg/autostart', ['data/yourapp-launcher.desktop'])]
    )

Daemon'un tüm kullanıcılar için çalışması gerektiğinde, örneğin U1'in nasıl çalıştığı gibi bir yol gibi görünüyor.

Seçenek # 2: Sabit kod

Her şeyi uygulama mantığınıza sabitleyin, örneğin ilk çalıştırmada ~ / .config / autostart / yurapp-launcher.desktop'u başlatın, örneğin GmailNotify Uygulaması'nın yaptığı gibi.

GmailNotify App'in aksine, freedesktop.org standartlarına erişmek için python-xdg kütüphanesine başvurabilirsiniz :

import xdg
print xdg.BaseDirectory.xdg_config_home

Kullanıcı tarafından yönetilen cinler için iyi görünüyor.


1

Ne görebiliyorum hızlı bir şekilde bir daemon eklemek için hiçbir şablon yoktur. Ancak, bir daemon şablonu oluşturarak katkıda bulunabilirsiniz. Kendi şablonunuzu nasıl oluşturacağınız bu sorunun cevabında açıklanmaktadır: Yeni bir hızlı uygulama şablonu nasıl oluşturulur?

Şablonunuzu başkalarının kullanabilmesi için Launchpad'deki topluluk şablonları grubuna da katılabilirsiniz .

EDIT: Birlik lens şablonu da var . Sadece Ubuntu Unity ile çalışacaktır, bu yüzden platforma bağımlı olacaksınız (bana sorarsanız oldukça zayıf bir hal alacaksınız). Ama başlangıçta D-Bus işleri hazır gibi görünüyor. Bir tür daemon gibi, ama belki de tam olarak değil. Bunu, platformdan bağımsız bir arka plan programı oluşturmak için bir başlangıç ​​noktası olarak kullanabilirsiniz ...

Üzgünüm, başkalarından ne bağlayabileceğim dışında hiçbir ayrıntı bilmiyorum. Qt4'ü hızlı bir şekilde nasıl kullanacağımı öğrenmek için kendime bakıyorum. EDIT2: Qt için daemon platformunuzu bağımsız hale getirecek bir D-Bus bileşeni bulunduğunu gördüm (Windows ve Linux üzerinde çalışıyor vb.). Bu tartışma forumunun ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) nasıl kullanılacağına dair bir örneği vardır (C ++ 'da ama yine de) o. Veya QDBusConnection ve QDBusMessage için google kullanabilirsiniz.


0

Quickly belgelerine baktığımızda, Quickly'in daemons oluşturmayı yerel olarak desteklemediği anlaşılıyor. Bu nedenle Python Daemon Library'yi öneriyorum . Ayrıca, bir Quickly uygulamasından kolayca arabirimlenebilecek aşağıdaki Python eğitimlerini gözden geçirin:

Ayrıca, bu Yığın Taşması sorusu Python cinlerini ele alır.


Bağlantıların çoğundan geçtim, ancak hızlı bir şekilde GUI uygulamamı ve paralel olarak çalışacak bir daemon'u bağlamak için önerilen bir yol arıyorum.
Vignesh

Yine, Quickly bunu desteklemiyor. Hızlı bir şekilde 'gerçek' Python için uygulama mezun olmak zorunda kalacak. Bu yüzden örnek bağlantılar sağladım.
dotancohen

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.