提问人:林姿均 提问时间:11/15/2023 更新时间:11/20/2023 访问量:15
在 openbmc 中动态生成服务文件
Dynamically generate a service file in openbmc
问:
我需要在 openbmc 的 phosphor-software-manager 中实现 BIOS 更新功能。在以下代码片段中,versionId 是一个可以动态更改的变量。如何动态生成服务文件?或者在哪里生成服务文件?
void Activation::flashWriteHost()
{
auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
SYSTEMD_INTERFACE, "StartUnit");
auto biosServiceFile = "obmc-flash-host-bios@" + versionId + ".service";
method.append(biosServiceFile, "replace");
try
{
auto reply = bus.call(method);
}
catch (const sdbusplus::exception_t& e)
{
error("Error in trying to upgrade Host Bios: {ERROR}", "ERROR", e);
report<InternalFailure>();
}
}
答:
0赞
user1686
11/20/2023
#1
Systemd 本身从模板单元生成内存中的单元。在 之后指定的值(在 systemd 中称为“实例名称”)将在单元具有 或 扩展的任何地方自动替换。[email protected]
@
%i
%I
与 进行比较,后者是自动生成的。[email protected]
[email protected]
评论
/lib/systemd/system