Saya membangun aplikasi dengan cepat , dan saya ingin menambahkan daemon yang akan berjalan di latar belakang. Bagaimana kamu melakukan ini?
Saya membangun aplikasi dengan cepat , dan saya ingin menambahkan daemon yang akan berjalan di latar belakang. Bagaimana kamu melakukan ini?
Jawaban:
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:
CATATAN: Saya belum mencoba yang ini :)
letakkan skrip daemon Anda ke bin
direktori proyek cepat Anda, misalnya:bin/yourapp-launcher
tambahkan yang berikut ke dalam data/yourapp-launcher.desktop
file:
[Desktop Entry]
Name=Your App
Exec=/bin/sh -c 'yourapp-launcher'
Type=Application
X-GNOME-Autostart-Delay=30
Icon=yourapp
Comment=
NoDisplay=true
edit setup.py
dan tentukan tambahan data_files
di bagian DistUtilsExtra, misalnya:
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'])]
)
Tampaknya cara untuk pergi ketika daemon harus berjalan untuk semua pengguna, mis. Mirip cara kerja U1
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.
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.
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.
Python 3.3 akan memiliki modul daemon untuk pengelolaan daemon.