Hızlı bir şekilde bir uygulama oluşturuyorum ve arka planda çalışacak bir daemon eklemek istedim. Bunu nasıl yapıyorsun?
Hızlı bir şekilde bir uygulama oluşturuyorum ve arka planda çalışacak bir daemon eklemek istedim. Bunu nasıl yapıyorsun?
Yanıtlar:
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:
NOT: Bunu henüz denemedim :)
daemon betiğinizi bin
hızlı bir şekilde projenizin dizinine yerleştirin, örneğin:bin/yourapp-launcher
data/yourapp-launcher.desktop
dosyaya 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
DistUtilsExtra bölümünde setup.py
ek 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.
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.
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.
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.
Python 3.3, cinlerin yönetimi için bir daemon modülüne sahip olacak.