modprobe intelligently adds or removes a module from the Linux kernel

modprobe

# 查看mod
lsmod
# 手动加载
modprobe br_netfilter
# 手动卸载
modprobe -r br_netfilter

systemd-modules-load.service

systemctl status systemd-modules-load.service -l
cat > /etc/modules-load.d/10-virtio-net.conf<<EOF
br_netfilter
virtio-net
9p
9pnet
9pnet_virtio
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF
# 禁用模块
echo "blacklist rtl8192cu" | sudo tee /etc/modprobe.d/blacklist-rtl8192cu.conf
systemctl daemon-reload && systemctl enable systemd-modules-load.service && \
systemctl start systemd-modules-load.service && \
systemctl status systemd-modules-load.service -l

systemd-unitfiles

cat>/lib/systemd/system/containerd.service<<EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd

Delegate=yes
KillMode=process
Restart=always
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=1048576
# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity

[Install]
WantedBy=multi-user.target
EOF

ref