系统服务如何在快照中工作

Dav*_*lla 9 ubuntu-core snap

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

apps:
  tinyproxy:
    command: ./launcher.sh
    daemon: simple
    plugs: [network,network-bind]
Run Code Online (Sandbox Code Playgroud)

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

dho*_*ach 8

来自https://developer.ubuntu.com/en/snappy/build-apps/debug/

测试服务

要测试服务,必须先安装它。安装完成后,systemctl可以使用systemd 的命令查看服务是否按预期启动和运行,例如:

systemctl status snap.<name>.<appname>
Run Code Online (Sandbox Code Playgroud)

查找日志

journalctl命令可用于检查服务发送到stdout/的消息,stderr例如:

journalctl -u snap.<name>.<appname>
Run Code Online (Sandbox Code Playgroud)

服务可能会将其他数据记录到 syslog ( /var/log/syslog) 或自定义日志目录。请注意,自定义日志目录必须位于服务可以写入的路径中(通常为SNAP_DATA)。

获取核心转储

要启用核心转储,您必须配置一个地方通过 sysfs 将它们写入。例如你可以使用

$ echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern
Run Code Online (Sandbox Code Playgroud)

确保/tmp无论CWD接收信号的进程在哪里,您的核心转储都会写入目录。