WSL2 Ubuntu 永久开启 systemctl 命令的简单方法

  安装 daemonize 和 fontconfig

sudo apt install -y fontconfig daemonize

文件/etc/profile末尾加入

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/sbin/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}')
fiif [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then  exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAMEfi

注意不是/usr/bin/daemonize,而是 /usr/sbin/daemonize,有些博客这里写错了

文件/etc/sudoers末尾加入

%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]* -a su - [a-zA-Z0-9]*

使配置生效

$ sudo -s$ source /etc/profile

reference

https://github.com/MicrosoftDocs/WSL/issues/457%23issuecomment-751351142


打赏
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。