Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Utility to run systemd in WSL2 with a Linux namespace

License

NotificationsYou must be signed in to change notification settings

sorah/subsystemctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maintanence Note: You may want to usenullpo-head/wsl-distrod which provides better compatibility with systemd and easier installation, and well maintained.

Run systemd under Linux namespace in WSL2. Heavily inspired byarkane-systems/genie, but written in Rust.

Difference with arkane-systems/genie

Slightly followinggenie's behavior, but noted below...

  • Interface
    • Command line interface is not compatible.
  • Behavior
    • Hostname altertion is optional with--hostname,--hostname-suffix
      • /etc/hosts are not updated. Users are encouraged to usenss-myhostname.
    • Usesmachinectl shell to launch a user shell; this allows running systemd user session
  • Internal
    • Removed dependency tounshare,daemonize,nsenter command line tools
    • systemd-wide environment variables are set viasystemd.conf drop-in, usingDefaultEnvironment=
    • systemd PID from root namespace is stored at/run/subsystemctl/systemd.pid

Install

Arch Linux

PKGBUILD:https://github.com/sorah/arch.sorah.jp/tree/master/aur-sorah/PKGBUILDs/subsystemctl

(PKGBUILD originally submitted to AUR (https://aur.archlinux.org/packages/subsystemctl) was deleted asthey unwelcomes WSL-exclusive packages.)

Debian/Ubuntu

Refer tohttps://github.com/nkmideb/subsystemctl for debian source.

Pre-built package binaries available athttps://github.com/nkmideb/subsystemctl/releases for your convenient.

Self build

cargo install subsystemctl

or from git source:

cargo build --releaseinstall -m6755 -oroot -groot ./target/release/subsystemctl /usr/local/bin/subsystemctl

Usage

subsystemctl start: Startsystemd environment

PS> wsl-u root-- subsystemctl start

subsystemctl shell: shell login to systemd-enabled environment

PS> wsl subsystemctl shellConnected to the local host. Press ^] three times within 1s toexit session.someone@hostname$ ...

Specifying uid to login

PS> wsl-u root-- subsystemctl shell--uid=1000Connected to the local host. Press ^] three times within 1s toexit session.someone@hostname$ ...

Automatically starting and entering a user shell

PS> wsl-u root-d Arch-- subsystemctl shell--uid=1000--start[2021-06-27T16:32:20ZINFOsubsystemctl] Starting systemdConnected to the local host. Press ^] three times within 1s toexit session.someone@hostname$ ...

subsystemctl exec: Rawnsenter like interface

PS> wsl subsystemctl exec iduid=1000(sorah) gid=1000(sorah) groups=1000(sorah),116(admin)

Specifying uid (and gid)

PS> wsl-u root-- subsystemctl exec iduid=0(root) gid=0(root) groups=0(root)PS> wsl-u root-- subsystemctl exec--uid=1000 iduid=1000(sorah) gid=1000(sorah) groups=1000(sorah),116(admin)PS> wsl-u root-- subsystemctl exec--uid=1000--gid=116 iduid=1000(sorah) gid=116(admin) groups=116(admin)

subsystemctl is-running

#!/bin/bashif subsystemctl is-running;thenecho"running"elseecho"not-running"fi

subsystemctl is-inside

#!/bin/bashif subsystemctl is-inside;thenecho"inside"elseecho"outside"fi

Tips

systemd-resolved, networkd are recommended to be disabled

otherwise/etc/resolv.conf might get overwritten to resolved stub-resolver.

Author

Sorah Fukumorihttps://sorah.jp/

License

MIT

About

Utility to run systemd in WSL2 with a Linux namespace

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp