ฉันจะเพิ่ม daemon ลงในแอปพลิเคชันของฉันได้อย่างรวดเร็วได้อย่างไร


10

ฉันกำลังสร้างแอปอย่างรวดเร็วและฉันต้องการเพิ่มดีมอนที่จะทำงานในพื้นหลัง คุณจะทำสิ่งนี้ได้อย่างไร


คุณควรดู D-Bus
ADcomp

โปรดระบุลิงก์ไปยังหน้าแรกอย่างรวดเร็ว ด้วยชื่ออย่างนั้นไม่สามารถ google ได้
dotancohen

คณบดีคนนี้ควรทำอะไร จำเป็นต้องเปิดเผยต่อสาธารณะหรือเพียงเพื่อใบสมัครของคุณ?
Timo

@dotancohen เรียบร้อยแล้ว แม้ว่าฉันจะแนะนำบิตนำเข้าก็คือ Python
8128

@Timo ฉันไม่สามารถพูดถึง Vigesh ได้ แต่สำหรับความกรุณาของฉันฉันกำลังมองหาบางอย่างที่ฉันต้องการสมัคร
8128

คำตอบ:


1

เท่าที่ฉันรู้มีอะไรเฉพาะในการป้องกันหรือช่วยเหลือคุณในการใช้ daemons อย่างรวดเร็ว แต่มีอย่างน้อยสองตัวเลือกฉันรู้ / เดาคุณสามารถทำได้ด้วยหลาม:

ตัวเลือก # 1: Distutils

หมายเหตุ: ฉันยังไม่ได้ลองอันนี้ :)

  1. ใส่ daemon script ของคุณลงใน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และระบุเพิ่มเติมdata_filesในส่วน DistUtilsExtra เช่น:

    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 ต้องทำงานสำหรับผู้ใช้ทั้งหมดเช่นวิธีการทำงานของ U1

ตัวเลือก # 2: Hardcode

ฮาร์ดโค้ดทุกอย่างในตรรกะแอปของคุณตัวอย่างเช่นเริ่มต้น ~ / .config / autostart / yurapp-launcher.desktop ในการเรียกใช้ครั้งแรกเช่นเดียวกับวิธีที่GmailNotify Appทำ

ต่างจาก GmailNotify App คุณสามารถพึ่งพาไลบรารีpython-xdgเพื่อเข้าถึงมาตรฐาน freedesktop.org:

import xdg
print xdg.BaseDirectory.xdg_config_home

ดูเหมือนว่าดีสำหรับ daemons ที่จัดการโดยผู้ใช้


1

จากสิ่งที่ฉันเห็นว่าไม่มีเทมเพลตให้เพิ่ม daemon อย่างรวดเร็ว อย่างไรก็ตามคุณสามารถมีส่วนร่วมได้โดยสร้างเทมเพลต daemon วิธีสร้างเทมเพลตของคุณเองมีการอธิบายในคำตอบสำหรับคำถามนี้: วิธีสร้างเทมเพลตแอปพลิเคชันใหม่อย่างรวดเร็ว

คุณสามารถเข้าร่วมกลุ่มแม่แบบชุมชนที่ Launchpad เพื่อให้แม่แบบของคุณพร้อมให้ผู้อื่นใช้

แก้ไข: นอกจากนี้ยังมีเลนส์แม่แบบความสามัคคี มันจะทำงานกับ Ubuntu Unity เท่านั้นดังนั้นคุณจะขึ้นอยู่กับแพลตฟอร์ม (ค่อนข้างอ่อนแอถ้าคุณถามฉัน) แต่ดูเหมือนว่าจะมีสิ่งที่ D-Bus พร้อมตั้งแต่เริ่มต้น ชนิดของภูต แต่อาจจะไม่มาก คุณสามารถใช้สิ่งนี้เป็นจุดเริ่มต้นเพื่อสร้าง daemon อิสระแพลตฟอร์มบางที ...

ฉันไม่ทราบรายละเอียดใด ๆ นอกจากสิ่งที่ฉันสามารถเชื่อมโยงจากคนอื่นขอโทษ ดูที่ตัวฉันเองเพื่อดูวิธีใช้ Qt4 อย่างรวดเร็ว แก้ไข 2: เพิ่งพบว่ามีองค์ประกอบ D-Bus เพื่อ Qt ซึ่งจะทำให้แพลตฟอร์มภูตของคุณเป็นอิสระ (ทำงานบน Windows และ Linux ฯลฯ ) ฟอรัมสนทนานี้ ( http://www.qtcentre.org/threads/38453-Send-and-receive-a-signal-between-2-Qt-applications ) มีตัวอย่าง (ใน C ++ แต่ยังคง) ของวิธีการใช้ มัน. หรือคุณสามารถ google สำหรับ QDBusConnection และ QDBusMessage


0

เมื่อมองดูเอกสารอย่างรวดเร็วดูเหมือนว่าอย่างรวดเร็วไม่สนับสนุนการสร้าง daemons ดังนั้นผมจึงขอแนะนำให้ภูตห้องสมุดหลาม นอกจากนี้ให้ดูบทแนะนำ Python ต่อไปนี้ที่สามารถเชื่อมต่อได้ง่ายจากแอปพลิเคชันอย่างรวดเร็ว:

นอกจากนี้คำถาม Stack Overflow ยังตอบคำถาม Python daemons


ฉันได้ผ่านการเชื่อมโยงมากมาย แต่ฉันกำลังมองหาวิธีที่แนะนำในการเชื่อมต่อแอพ GUI อย่างรวดเร็วของฉันและ daemon ที่จะทำงานในแบบคู่ขนาน daemon ต้องได้รับการบรรจุด้วยแอพเดียวกันและควรเริ่มต้นเมื่อบู๊ต
Vignesh

อีกครั้งอย่างรวดเร็วไม่สนับสนุนสิ่งนี้ คุณจะต้องเปลี่ยนแอปพลิเคชันจากอย่างรวดเร็วเป็น Python แบบ 'จริง' นั่นคือเหตุผลที่ฉันให้ลิงค์ตัวอย่าง
dotancohen

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.