web-dev-qa-db-ja.com

Quicklyアプリケーションにデーモンを追加するにはどうすればよいですか?

quickly でアプリを構築していますが、バックグラウンドで実行されるデーモンを追加したかったのです。これはどうやるんですか?

10
Vignesh

私が知る限り、デーモンの実行を防止または支援するための特定の方法はすぐにはありませんが、Pythonでそれを行うことができることを知っている/推測する少なくとも2つのオプションがあります:

オプション#1:Distutils

注:まだ試していませんでした:)

  1. デーモンスクリプトを、すばやくプロジェクトのbinディレクトリに配置します。例:bin/yourapp-launcher

  2. 以下をdata/yourapp-launcher.desktopファイルに追加します。

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
    
  3. setup.pyを編集し、DistUtilsExtraセクションで追加のdata_filesを指定します。例:

    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'])]
    )
    

デーモンをすべてのユーザーに対して実行する必要があるときに進む方法のようです。 U1の動作と同様です。

オプション#2:ハードコード

すべてをアプリロジックにハードコーディングします。たとえば、最初の実行時に〜/ .config/autostart/yurapp-launcher.desktopを初期化します。 GmailNotify App の方法に似ています。

GmailNotifyアプリとは異なり、 python-xdg ライブラリを使用してfreedesktop.org標準にアクセスできます。

import xdg
print xdg.BaseDirectory.xdg_config_home

ユーザー管理デーモンに適しているようです。

1
wik

私が見ることができるものから、すぐにデーモンを追加するテンプレートはありません。ただし、デーモンテンプレートを作成することで貢献できます。独自のテンプレートを作成する方法は、この質問への回答で説明されています。 新しい迅速なアプリケーションテンプレートを作成する方法

また、Launchpadで community templates group に参加して、他の人がテンプレートを使用できるようにすることもできます。

編集: nity lens template もあります。 Ubuntu Unityでのみ動作するため、プラットフォームに依存します(私に尋ねると、かなり重大な弱点があります)。しかし、最初からD-Busの準備が整っているようです。デーモンのようなものですが、そうではないかもしれません。これを出発点として使用して、プラットフォームに依存しないデーモンを作成できます。おそらく...

他の人からリンクできるもの以外の詳細は知りません、ごめんなさい。これを自分で見て、Qt4をすばやく使用する方法を見つけてください。 EDIT2:QtにはD-Busコンポーネントがあることがわかりました。これにより、デーモンプラットフォームが独立します(WindowsやLinuxなどで動作します)。このディスカッションフォーラム( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications )には例があります(C++では、しかし、まだ)それを使用する方法の。または、QDBusConnectionとQDBusMessageをグーグルで検索できます。

1
GaRyu

Python 3.3には、デーモンを管理するためのデーモンモジュールがあります。

0
Ramchandra Apte

Quicklyのドキュメントを見ると、Quicklyはデーモンの作成をネイティブにサポートしていないようです。したがって、 Python Daemon Library をお勧めします。また、以下のPython Quicklyアプリケーションから簡単にインターフェイスできるチュートリアル:

また、 このStack Overflowの質問 アドレスPythonデーモン。

0
dotancohen