创建 snap 时,根据snapcraft.yaml 文件的语法,daemon
可以添加关键字来指定该应用将作为系统服务运行。此类声明的示例如下:
apps:
tinyproxy:
command: ./launcher.sh
daemon: simple
plugs: [network,network-bind]
但是,简而言之,系统服务到底意味着什么?也就是说,它们的生命周期是什么(启动、重启、停止……)?我可以使用常用工具(ps
、top
等)监控它们在系统中的运行吗?
答案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
接收信号的进程在何处,核心转储都会被写入目录中。