BINFMT.D(5)

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