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


10

でアプリをすばやく構築しています。バックグラウンドで実行されるデーモンを追加したいと考えています。これどうやってやるの?


D-Busを見てください。
ADcomp、2007

すばやくホームページへのリンクを提供してください。そのような名前ではグーグルできません。
dotancohen 2012

このデーモンは何をすることになっているのですか?公開する必要がありますか、それともアプリケーションのみですか?
ティモ

@dotancohen完了。インポートビットはそれがPythonであることをお勧めしますが。
8128 2012

@ティモ私はビゲシュについて話すことはできませんが、私の賞金のために私は自分のアプリケーションのためだけに何かを見ています
8128

回答:


1

私が知る限り、デーモンの実行を防止したり支援したりするための特別なことは何もありませんが、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. DistUtilsExtraセクションでsetup.py追加data_filesを編集して指定します。例:

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

デーモンがすべてのユーザーに対して実行されている必要があるときに移動する方法のようです。たとえば、U1の動作と同様です。

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

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

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

import xdg
print xdg.BaseDirectory.xdg_config_home

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


1

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

Launchpadのコミュニティテンプレートグループに参加して、他のユーザーがテンプレートを使用できるようにすることもできます。

編集:Unityレンズテンプレートもあります。これはUbuntu Unityでのみ機能するため、プラットフォームに依存します(私に尋ねると、かなり弱点があります)。しかし、最初からD-Busの準備ができているようです。デーモンのようなものですが、おそらく完全ではありません。これを開始点として使用して、プラットフォームに依存しないデーモンを作成できます。おそらく...

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


0

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

また、このStack Overflowの質問はPythonデーモンに対応しています。


私は多くのリンクを経由しましたが、迅速にGUIアプリと並列実行されるデーモンを接続するための推奨される方法を探しています。デーモンは同じアプリにパッケージ化する必要があり、起動時に開始する必要があります。
Vignesh

繰り返しますが、Quicklyはこれをサポートしていません。アプリケーションをQuicklyから「実際の」Pythonに変更する必要があります。そのため、サンプルリンクを提供しました。
dotancohen 2012

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.