标题只是为了便于搜索。话不多说,如果遇到上述错误,是因为nsenter命令的-a选项不合适,改成-m -p即可。
附完整的wsl2 ubuntu系统开启systemd支持的命令:

  1. 安装 daemonize 和 fontconfig
sudo apt install -y fontconfig daemonize
  1. 加入profile
cat << __EOF__ > /etc/profile.d/enable-systemd.sh
SYSTEMD_PID=\$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target\$' | grep -v unshare | awk '{print \$2}')
if [ -z "\$SYSTEMD_PID" ]; then
  sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
  SYSTEMD_PID=\$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target\$' | grep -v unshare | awk '{print \$2}')
fi
if [ -n "\$SYSTEMD_PID" ] && [ "\$SYSTEMD_PID" != "1" ]; then
  exec sudo /usr/bin/nsenter -t \$SYSTEMD_PID -m -p su - \$LOGNAME
fi
__EOF__
  1. 添加sudoers设置
cat << __EOF__ > /etc/sudoers.d/enable-systemd
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
%sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -m -p su - [a-zA-Z0-9]*
__EOF__
  1. 使配置生效
$ sudo -s
$ source /etc/profile
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐