Làm cách nào để thêm daemon vào ứng dụng Nhanh của tôi?


10

Tôi đang xây dựng một ứng dụng nhanh chóng và tôi muốn thêm một trình nền sẽ chạy trong nền. Làm thế nào để bạn làm điều này?


Bạn nên xem D-Bus.
ADcomp

Vui lòng cung cấp một liên kết đến trang chủ nhanh chóng. Với một cái tên như vậy người ta không thể google nó.
dotancohen

Deamon này phải làm gì? Nó cần phải được công khai hoặc chỉ cho ứng dụng của bạn?
Timo

@dotancohen Xong. Mặc dù tôi đề nghị bit nhập là trong Python.
8128

@Timo Tôi không thể nói cho Vigesh, nhưng vì tiền thưởng của tôi, tôi đang tìm kiếm thứ gì đó chỉ cho ứng dụng của mình
8128

Câu trả lời:


1

Theo như tôi biết thì không có gì cụ thể để nhanh chóng ngăn chặn hoặc hỗ trợ bạn chạy daemon, nhưng có ít nhất hai tùy chọn tôi biết / đoán bạn có thể làm điều đó với python:

Lựa chọn số 1:

LƯU Ý: Tôi chưa thử cái này :)

  1. đặt tập lệnh daemon của bạn vào binthư mục của dự án nhanh chóng của bạn, ví dụ:bin/yourapp-launcher

  2. thêm phần sau vào data/yourapp-launcher.desktoptập tin:

    [Desktop Entry]
    Name=Your App
    Exec=/bin/sh -c 'yourapp-launcher'
    Type=Application
    X-GNOME-Autostart-Delay=30
    Icon=yourapp
    Comment=
    NoDisplay=true
  3. chỉnh sửa setup.pyvà chỉ định bổ sung data_filestrong phần DistUtilsExtra, ví dụ:

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

Có vẻ là một cách để đi khi daemon phải chạy cho tất cả người dùng, ví dụ như cách U1 hoạt động.

Tùy chọn # 2: Mã cứng

Hardcode mọi thứ vào logic ứng dụng của bạn, ví dụ: khởi tạo ~ / .config / autostart / yurapp-launcher.desktop trong lần chạy đầu tiên, ví dụ như cách ứng dụng GmailNotify thực hiện.

Không giống như Ứng dụng GmailNotify, bạn có thể dựa vào thư viện python-xdg để truy cập các tiêu chuẩn freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

Có vẻ tốt cho người dùng quản lý daemon.


1

Từ những gì tôi có thể thấy, không có mẫu nào để thêm một daemon nhanh chóng. Tuy nhiên, bạn có thể đóng góp bằng cách tạo một mẫu daemon. Cách tạo mẫu của riêng bạn được giải thích trong câu trả lời cho câu hỏi này: Cách tạo mẫu ứng dụng nhanh mới

Bạn cũng có thể tham gia nhóm mẫu cộng đồng tại Launchpad để cung cấp mẫu của bạn cho người khác sử dụng.

EDIT: Ngoài ra còn có mẫu ống kính Unity . Nó sẽ chỉ hoạt động với Ubuntu Unity, vì vậy bạn sẽ phụ thuộc vào nền tảng (điểm yếu khá lớn nếu bạn hỏi tôi). Nhưng dường như có những thứ D-Bus sẵn sàng ngay từ đầu. Kiểu như một daemon, nhưng có lẽ không hoàn toàn. Bạn có thể sử dụng điều này như một điểm khởi đầu để tạo một trình nền độc lập nền tảng, có lẽ ...

Tôi không biết bất kỳ chi tiết nào ngoài những gì tôi có thể liên kết từ người khác, xin lỗi. Chỉ cần nhìn vào bản thân mình để tìm ra cách sử dụng Qt4 một cách nhanh chóng. EDIT2: Chỉ cần thấy rằng có một thành phần D-Bus cho Qt, sẽ làm cho nền tảng daemon của bạn trở nên độc lập (hoạt động trên Windows và Linux, v.v.). Diễn đàn thảo luận này ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-b between-2-Qt-apply ) có một ví dụ (trong C ++, nhưng vẫn) về cách sử dụng nó Hoặc bạn có thể google cho QDBusConnection và QDBusMessage.


0

Nhìn qua các tài liệu Quickly, có vẻ như Quickly không hỗ trợ việc tạo daemon. Vì vậy, tôi đề nghị Thư viện Python Daemon . Ngoài ra, hãy xem qua các hướng dẫn Python sau đây có thể được giao tiếp dễ dàng từ ứng dụng Nhanh chóng:

Ngoài ra, câu hỏi Stack Overflow này giải quyết các trình nền Python.


Tôi đã đi qua nhiều liên kết, nhưng tôi đang tìm một cách được đề xuất để kết nối ứng dụng GUI nhanh chóng của mình và một daemon sẽ chạy song song. Daemon phải được đóng gói với cùng một ứng dụng và nên được khởi động khi khởi động.
Vignesh

Một lần nữa, Quickly không hỗ trợ điều này. Bạn sẽ phải tốt nghiệp ứng dụng từ Python nhanh chóng thành 'thực tế' Python. Đó là lý do tại sao tôi cung cấp các liên kết ví dụ.
dotancohen

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.