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.