Bagaimana cara menambahkan daemon ke aplikasi Quickly saya?

10

Saya membangun aplikasi dengan cepat , dan saya ingin menambahkan daemon yang akan berjalan di latar belakang. Bagaimana kamu melakukan ini?

Vignesh
sumber
Anda harus melihat di D-Bus.
ADcomp
Harap berikan tautan ke beranda cepat. Dengan nama seperti itu orang tidak bisa google.
dotancohen
Apa yang seharusnya dilakukan deamon ini? Apakah perlu untuk umum atau hanya untuk aplikasi Anda?
Timo
@dotancohen Selesai. Meskipun saya menyarankan bit impor adalah bahwa itu dalam Python.
8128
@Timo Saya tidak bisa bicara untuk Vigesh, tetapi untuk hadiah saya, saya sedang melihat sesuatu hanya untuk aplikasi saya
8128

Jawaban:

1

Sejauh yang saya tahu tidak ada yang spesifik dengan cepat untuk mencegah atau membantu Anda menjalankan daemon, tetapi setidaknya ada dua opsi yang saya tahu / kira Anda bisa melakukannya dengan python:

Opsi # 1: Distutils

CATATAN: Saya belum mencoba yang ini :)

  1. letakkan skrip daemon Anda ke bindirektori proyek cepat Anda, misalnya:bin/yourapp-launcher

  2. tambahkan yang berikut ke dalam data/yourapp-launcher.desktopfile:

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
  3. edit setup.pydan tentukan tambahan data_filesdi bagian DistUtilsExtra, misalnya:

    DistUtilsExtra.auto.setup(
    name='hello-ubuntu',
    version='0.1',
    #license='GPL-3',
    #author='Your Name',
    #author_email='[email protected]',
    #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'])]
    )

Tampaknya cara untuk pergi ketika daemon harus berjalan untuk semua pengguna, mis. Mirip cara kerja U1

Opsi # 2: Hardcode

Hardcode semuanya ke dalam logika aplikasi Anda, misalnya menginisialisasi ~ / .config / autostart / yurapp-launcher.desktop saat dijalankan pertama kali, misalnya mirip dengan cara aplikasi GmailNotify melakukannya.

Tidak seperti App GmailNotify, Anda dapat mengandalkan pustaka python-xdg untuk mengakses standar freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

Tampaknya bagus untuk daemon yang dikelola pengguna.

wik
sumber
1

Dari apa yang saya lihat tidak ada template untuk menambahkan daemon dengan cepat. Namun, Anda dapat berkontribusi dengan membuat templat daemon. Cara membuat template Anda sendiri dijelaskan dalam jawaban untuk pertanyaan ini: Cara membuat template aplikasi cepat baru

Anda juga dapat bergabung dengan grup templat komunitas di Launchpad, untuk membuat templat Anda tersedia untuk digunakan orang lain.

EDIT: Ada juga template lensa Unity . Ini hanya akan bekerja dengan Ubuntu Unity, jadi Anda akan bergantung pada platform (kelemahan yang signifikan jika Anda bertanya kepada saya). Tapi sepertinya sudah menyiapkan D-Bus dari awal. Agak seperti daemon, tapi mungkin tidak cukup. Anda bisa menggunakan ini sebagai titik awal untuk membuat daemon platform independen, mungkin ...

Saya tidak tahu detail apa pun selain apa yang bisa saya tautkan dari orang lain, maaf. Hanya melihat ini sendiri untuk mengetahui cara menggunakan Qt4 dengan cepat. EDIT2: Baru menemukan bahwa ada komponen D-Bus ke Qt, yang akan membuat platform daemon Anda independen (bekerja pada Windows dan Linux dll). Forum diskusi ini ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) memiliki contoh (dalam C ++, tetapi masih) tentang cara menggunakan Itu. Atau Anda dapat google untuk QDBusConnection dan QDBusMessage.

GaRyu
sumber
0

Melihat melalui dokumen Quickly, tampaknya Quickly tidak secara alami mendukung pembuatan daemon. Oleh karena itu saya menyarankan Perpustakaan Python Daemon . Selain itu, baca tutorial Python berikut yang dapat dihubungkan dengan mudah dari aplikasi Quickly:

Juga, pertanyaan Stack Overflow ini membahas daemon Python.

dotancohen
sumber
Saya telah melalui banyak tautan, tetapi saya mencari cara yang disarankan untuk menghubungkan aplikasi GUI saya dengan cepat dan daemon yang akan berjalan secara paralel. Daemon harus dikemas dengan aplikasi yang sama dan harus dimulai saat boot.
Vignesh
Sekali lagi, Quickly tidak mendukung ini. Anda harus lulus aplikasi dari Cepat ke Python 'asli'. Itu sebabnya saya memberikan contoh tautan.
dotancohen
0

Python 3.3 akan memiliki modul daemon untuk pengelolaan daemon.

Ramchandra Apte
sumber