wsl安装systemd

wsl默认是没有systemd服务的,需要自行去安装。


  • 安装daemonize和fontconfig
sudo apt install -y fontconfig daemonize
  • 编辑/etc/profile脚本,加入如下内容:
sudo nano /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/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 -a su - $LOGNAME
fi
  • 修改/etc/sudoers文件,加入如下内容:
sudo nano /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]*
  • 执行source /etc/profile
source /etc/profile
  • 执行systemctl验证是否能够正常操作。
systemctl --version

参考文章地址


Enjoy it !

-------------本文结束感谢您的阅读-------------