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
- 2.
- 《如何在Linux下指定特定型別的檔案用特定的程式開啟》
- 3.
- java-binfmt-misc
本頁面中文版由中文 man
手冊頁計劃提供。
翻譯人員:金步國
金步國作品集:
http://www.jinbuguo.com
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh