从 python 创建 /etc/machine-id 的正确方法

Correct way to create /etc/machine-id from python

我想从 python 脚本而不是使用 systemd-machine-id-setup 创建 systemd 的 /etc/machine-id。我正在准备一个 rootfs,我不想依赖主机上安装的 systemd。

我当前的代码如下所示:

from uuid import uuid4
f = open("machine-id", "w")
f.write(uuid4().hex + "\n")
f.close()

这是正确的做法吗?它是正确的字节顺序吗?我错过了什么吗?

如果需要,请提供正确的代码 and/or 参考。

是的。参见Documentation。它是一个文本文件,因此字节顺序与此处无关。 另请参阅 handles/generates 的代码: make_v4_uuid 函数及其在第 221 行的调用位置 https://github.com/systemd/systemd/blob/master/src/libsystemd/sd-id128/sd-id128.c

尽管我个人会成功:

from uuid import uuid4
with open("machine-id", "w") as f:
    f.write(uuid4().hex + "\n")