บริการของระบบทำงานในรูปแบบอย่างไร


9

เมื่อสร้างสแน็ปและตามไวยากรณ์ของไฟล์ snapcraft.yamlคุณdaemonสามารถเพิ่มคำหลักเพื่อระบุว่าแอปจะทำงานเป็นบริการของระบบ เป็นตัวอย่างของการประกาศดังกล่าว:

apps:
  tinyproxy:
    command: ./launcher.sh
    daemon: simple
    plugs: [network,network-bind]

อย่างไรก็ตามมันหมายความว่าอะไรที่จะให้บริการระบบได้อย่างรวดเร็ว? นั่นคือวงจรชีวิตของพวกเขาคืออะไร (เริ่ม, รีสตาร์ท, หยุด ... ) ฉันสามารถตรวจสอบได้ทำงานในระบบด้วยเครื่องมือปกติ ( ps, topฯลฯ )?

คำตอบ:


8

จากhttps://developer.ubuntu.com/en/snappy/build-apps/debug/

ทดสอบบริการ

เพื่อทดสอบบริการจะต้องติดตั้งก่อน เมื่อติดตั้งแล้วsystemctlคำสั่งของ systemd สามารถใช้เพื่อดูว่าบริการเริ่มต้นและทำงานตามที่คาดไว้หรือไม่ตัวอย่างเช่น

systemctl status snap.<name>.<appname>

การค้นหาบันทึก

journalctlคำสั่งสามารถนำมาใช้ในการตรวจสอบข้อความที่บริการส่งถึงstdout/ stderrตัวอย่างเช่น:

journalctl -u snap.<name>.<appname>

บริการอาจบันทึกข้อมูลเพิ่มเติมไปยัง syslog ( /var/log/syslog) หรือไดเรกทอรีบันทึกที่กำหนดเอง โปรดทราบว่าไดเรกทอรีบันทึกที่กำหนดเองจะต้องอยู่ในเส้นทางที่บริการสามารถเขียน (ปกติSNAP_DATA)

การรับดัมพ์หลัก

หากต้องการเปิดใช้งานการถ่ายโอนข้อมูลหลักคุณต้องกำหนดค่าสถานที่เพื่อเขียนข้อมูลเหล่านั้นผ่าน sysfs ตัวอย่างเช่นคุณสามารถใช้

$ echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern

เพื่อให้แน่ใจว่า coredumps ของคุณถูกเขียนลงใน/tmpไดเรกทอรีโดยไม่คำนึงถึงCWDกระบวนการที่ได้รับสัญญาณ


ขอบคุณ! นอกจากนี้ฉันได้รับคำแนะนำว่าวิธีง่าย ๆ ในการแก้ไขปัญหาที่เกิดขึ้นกับบริการที่ไม่เริ่มทำงานคือการยกเลิกการใส่เครื่องหมายdaemon: simpleบรรทัดชั่วคราวเพื่อให้มันทำงานเป็นแอพปกติแล้วเริ่มบริการ "ผนวก" ด้วยตนเองเช่นsudo /snap/bin/<servicename>
David Planella

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