系统服务如何快速工作


9

当创建一个快照,并根据该snapcraft.yaml文件的语法时,daemon可以添加关键字指定的应用程序将运行为系统服务。作为此类声明的示例:

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

但是,瞬间成为系统服务到底意味着什么?也就是说,它们的生命周期是什么(启动,重启,停止...)?我可以监控他们的系统与通常的工具(跑步pstop等)?

Answers:


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

以确保您的核心转储都写入/tmp目录中,而不管CWD接收信号的进程在哪里。


谢谢!另外,我得到的提示是,调试服务未启动的问题的一种简便方法是暂时取消注释该daemon: simple行,以使其表现为常规应用程序,然后手动启动“已应用”的服务,方法为sudo /snap/bin/<servicename>
David Planella

是否可以将日志重定向到自定义文件而不是日志?
Ankur Bhatia,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.