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?
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?
Câu trả lời:
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ƯU Ý: Tôi chưa thử cái này :)
đặt tập lệnh daemon của bạn vào bin
thư mục của dự án nhanh chóng của bạn, ví dụ:bin/yourapp-launcher
thêm phần sau vào data/yourapp-launcher.desktop
tậ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
chỉnh sửa setup.py
và chỉ định bổ sung data_files
trong 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.
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.
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.
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.
Python 3.3 sẽ có một mô-đun trình nền để quản lý trình nền.