如何使用 XML 文件配置配置 systemd *.service
How to configure systemd *.service using XML file configuration
我正在制作一个跨平台的后台进程。对于 Windows,我有一个 XML 配置文件,其中包含服务名称、加载类型等。在 windows 上,程序在执行期间仅解析此文件并创建服务,很简单。另一方面,Linux 有这个 *.service 配置文件,它不允许我使用我的 XML 配置,所以我必须在 *.service 中配置我的守护进程。
所以问题是,如何让 *.service 使用我的 XML 配置来加载守护程序的首选项?我知道这是可能的,但不知道该怎么做。
我怀疑您使用众所周知的技术将 Windows 服务可执行文件注册为服务,而您 运行 将其作为常规进程注册。这只是调用正确的服务控制管理器 API 的问题。如果 StartServiceCtrlDispatcher
失败,你知道你不是服务。
同样的想法适用于 Linux。如果您正常启动您的程序,您将按照记录的过程将自己注册为服务。这个过程当然不同于Windows;它涉及您动态编写 *.service
文件并注册它。
并非 OS 中的所有 API 都需要是函数调用,API 也可以采用文件格式的形式。
我正在制作一个跨平台的后台进程。对于 Windows,我有一个 XML 配置文件,其中包含服务名称、加载类型等。在 windows 上,程序在执行期间仅解析此文件并创建服务,很简单。另一方面,Linux 有这个 *.service 配置文件,它不允许我使用我的 XML 配置,所以我必须在 *.service 中配置我的守护进程。 所以问题是,如何让 *.service 使用我的 XML 配置来加载守护程序的首选项?我知道这是可能的,但不知道该怎么做。
我怀疑您使用众所周知的技术将 Windows 服务可执行文件注册为服务,而您 运行 将其作为常规进程注册。这只是调用正确的服务控制管理器 API 的问题。如果 StartServiceCtrlDispatcher
失败,你知道你不是服务。
同样的想法适用于 Linux。如果您正常启动您的程序,您将按照记录的过程将自己注册为服务。这个过程当然不同于Windows;它涉及您动态编写 *.service
文件并注册它。
并非 OS 中的所有 API 都需要是函数调用,API 也可以采用文件格式的形式。