Arch manual pages

BINFMT.D(5) binfmt.d BINFMT.D(5)

binfmt.d - 在系統啓動時爲可執行文件配置 額外的二進制格式

/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)

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

systemd 231