系统服务如何在 snap 中工作

系统服务如何在 snap 中工作

创建 snap 时,根据snapcraft.yaml 文件的语法daemon可以添加关键字来指定该应用将作为系统服务运行。此类声明的示例如下:

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

但是,简而言之,系统服务到底意味着什么?也就是说,它们的生命周期是什么(启动、重启、停止……)?我可以使用常用工具(pstop等)监控它们在系统中的运行吗?

答案1

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接收信号的进程在何处,核心转储都会被写入目录中。

相关内容