Provided by: manpages-zh_1.6.3.3-2_all bug

NAME

       binfmt.d - 在系统启动时为可执行文件配置 额外的二进制格式

SYNOPSIS

       /etc/binfmt.d/*.conf

       /run/binfmt.d/*.conf

       /usr/lib/binfmt.d/*.conf

描述

       在系统启动时, systemd-binfmt.service(8)
       会从上述目录中读取配置文件,并根据配置文件的指引,
       在内核中为可执行文件注册额外的二进制格式。

配置文件格式

       每个配置文件都包含一个 binfmt_misc 内核二进制格式规范的列表。 参见 binfmt_misc.txt[1] 与
       《如何在Linux下指定特定类型的文件用特定的程序打开》[2] 以了解如何注册额外的二进制格式,
       以及如何编写规则。

       空白行和以 # 或 ; 开头的行将被忽略。 这意味着不能在二进制格式规则中 将 # 与 ; 用作分隔符。

配置目录及其优先级

       配置文件依次从 /etc/, /run/, /usr/lib/ 目录中读取。 配置文件的名称必须符合 filename.conf
       格式。 对于不同目录下的同名配置文件,仅以优先级最高的目录中的那一个为准。 具体说来就是:
       /etc/ 的优先级最高、 /run/ 的优先级居中、 /usr/lib/ 的优先级最低。

       软件包应该将自带的配置文件安装在 /usr/lib/ 目录中。 /etc/ 目录仅供系统管理员使用。
       所有的配置文件(无论位于哪个目录中),统一按照文件名的字典顺序处理。
       如果在多个配置文件中设置了同一个选项, 那么仅以文件名最靠后(字典顺序)的那一个为准。
       为了便于排序,建议给所有配置文件 都加上两位十进制数字的文件名前缀。

       如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件, 那么最佳做法是在 /etc/ 目录中
       创建一个指向 /dev/null 的同名符号链接, 即可彻底屏蔽 /usr/lib/ 目录中的同名文件。
       如果软件包自带的某个配置文件位于 initrd 镜像中, 那么还必须重新生成 initrd 镜像。

例子

       Example 1. /etc/binfmt.d/wine.conf 文件:

           # 在执行 Windows 程序时启动 WINE
           :DOSWin:M::MZ::/usr/bin/wine:

       [译者注]关于Java的实例可以查看OpenSuSE的 java-binfmt-misc[3] 软件包。

参见

       systemd(1), systemd-binfmt.service(8), systemd-delta(1), wine(8)

NOTES

        1. binfmt_misc.txt
           https://www.kernel.org/doc/Documentation/binfmt_misc.txt

        2. 《如何在Linux下指定特定类型的文件用特定的程序打开》
           http://blog.csdn.net/roland_sun/article/details/50062295

        3. java-binfmt-misc
           http://rpm.pbone.net/index.php3?stat=3&search=java-binfmt-misc&srodzaj=3

       本页面中文版由中文 man 手册页计划提供。

       翻译人员:金步国
       金步国作品集:http://www.jinbuguo.com
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh