DOKK / manpages / debian 12 / manpages-zh / binfmt.d.5.zh_TW
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