Linux

如何使“binfmt_misc”的註冊擴展在重新啟動後仍然存在?

  • March 23, 2021

如何使註冊的擴展binfmt_misc在重新啟動後持續存在?

考慮以下執行binfmt_misc註冊的命令:

echo ':golang:E::go::/tmp/test:OC' | sudo tee /proc/sys/fs/binfmt_misc/register

它需要作為 執行root,因為只root允許寫入/proc/sys/fs/binfmt_misc/register。因此,我不能~/.bashrc以非特權使用者的身份進行此類註冊。

由於您使用的是 Debian,您可以binfmt-support使用以下命令安裝和註冊您的擴展update-binfmts

sudo update-binfmts --install golang /tmp/test --extension go --credentials yes

如果可行,您可以將binfmt_misc規範儲存在 下的文件中/usr/share/binfmts,這將確保每次系統啟動時都會載入它:

cat <<EOF | sudo tee /usr/share/binfmts/golang
package <local>
interpreter /tmp/test
extension go
credentials yes
EOF

要檢查上述工作,請執行

sudo update-binfmts --import golang

或者,您可以使用systemd 的支持binfmt_misc

echo ':golang:E::go::/tmp/test:OC' | sudo tee /etc/binfmt.d/golang.conf

這將在啟動時由systemd-binfmt.service.

引用自:https://unix.stackexchange.com/questions/640644