WSL2 Ubuntu 永久開啟 systemctl 命令的簡單方法
阿新 • • 發佈:2021-07-30
1. 安裝 daemonize 和 fontconfig
sudo apt install -y fontconfig daemonize
2. 檔案/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}') fi if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME fi
注意不是/usr/bin/daemonize,而是 /usr/sbin/daemonize,有些部落格這裡寫錯了
3.檔案/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]*
4.使配置生效
$ sudo -s $ source /etc/profile
reference
https://github.com/MicrosoftDocs/WSL/issues/457%23issuecomment-751351142