このページの本文へ

Windows Info 第113回

Windows Subsystem for Linuxの起動とバックグラウンドタスク

2018年01月21日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windows Subsystem for Linux(以下WSLとする)は、RS3で正式版となり、動作が変更になった。ベータ版のときには、bash.exeが唯一の起動方法で、Linux本体をlxrun.exeで管理していたが、Linuxディストリビューション(現時点ではubuntuとSUSE)がWindowsストアからのダウンロード、インストールとなり、lxrun.exeはRS2までのWSLの管理用となった。なおRS2では、bash on Windowsなどの名称があったが、RS3からはWindows Subsystem for Linuxが正式名称となっている。

 ちなみにLinuxでは、タスクよりもプロセスという用語が好まれる。ただし、一般的にタスクとプロセスの区別は明確でない(Linuxでもプロセスに対応するカーネル内の構造体にはtaskという名称が使われている)。ただし、プロセスはスレッドとの対応で、比較的範囲が狭く、プロセスやスレッド(さらにはファイバ)などの実行単位をまとめてスレッドと呼ぶことが比較的多い。ここではこの意味でタスクを使うことにして、「バックグラウンドタスク」と表現することにする。

 RS3でWSLを起動する方法はwsl.exeとなった。ただし、起動方法は3つある。

 1つは、このwslコマンドで、ディストリビューション名を使った「ubuntu.exe」というコマンドも用意された。ただし、これについてはwsl.exeを介してWSLを起動しているようだ。最後の1つは、ベータ版のときと同じbash.exeである。bash.exeの場合は、RS2までと同じく直接WSL環境を起動するようだ。なお、wslコマンドでは、インストールされているディストリビューションのうち1つをデフォルトとしてwslconfig.exeで指定するが、ディストリビューション名を使ったコマンドでは、wslconfigの設定にかかわらず、指定のディストリビューションをWSLで起動する。

 これらの3つのコマンドの違いだが、wsl.exeとbash.exeは、起動時のカレントディレクトリでそのままWSLが起動するのに対して、ubuntu.exeなどのディストリビューション用コマンドでは、各ユーザーのホームディレクトリ(/home以下)でWSLが起動する。また、wsl.exeとbash.exeは、引数がそのままbashに渡されるのに対して、ディストリビューション用コマンドは、起動オプションがあり、Linuxへのログインユーザー名や実行コマンドなどを指定できる。

 なお、現時点でWindowsストアで入手可能なディストリビューションには、

ubuntu 16.04 LTS
openSUSE Leap 42
SUSE Linux Enterprise Server 12

の3つがあり、以下のコマンドで起動が可能だ。

ubuntu.exe
openSUSE-42.exe
SLES-12.exe

 これらのコマンドは、where.exeによれば、

%userprofile%\AppData\Local\Microsoft\WindowsApps\

に存在していることになっているが、ここには、ファイルサイズゼロの実行ファイルしかなく、実体は、UWPアプリのインストールフォルダである「C:\Program Files\WindowsApps」以下にWSL用の各ディストリビューションのインストール先フォルダがある。たとえば、ubuntu.exeは、以下のフォルダにある。

C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_1604.2017.922.0_x64__79rhkp1fndgsc

 これは、Desktop Bridgeの仕組みを利用しているとみられ、前記のユーザーフォルダ以下には、他のAppxパッケージ化されたデスクトップアプリケーションの実行ファイルも置かれている。

 もともとUWPでは、インストール先フォルダや実行ファイルの実体をみせない(COMを介して起動するため、アプリケーション本体を直接指定しての起動が不可能)ようになっていたが、Desktop Bridgeでは、同じやり方でデスクトップアプリケーションをインストールするようになった。

 しかし、デスクトップアプリケーションでは、exe実行ファイルを直接指定して起動し、フルパスを指定しない場合には、PATH環境変数に実行ファイルを含むフォルダーを設定する必要がある。このため、Desktop Bridgeでも同じようにEXE実行ファイルを見せる必要があり、そのためのフォルダとなっている。

 RS3でWSLを起動すると、bash.exeやwsl.exeにより、LxssManagerというサービスが起動し、Linuxカーネルの役割を果たすinit.exeが起動し、WSL実行環境が動作しはじめる。起動されるbashは、サブシステムプロセスの中で起動するが、Windowsからは、単独のプロセスのように表示される。もっとも、Windowsでは、プロセスの親子関係を「公式」には認めていない(文書化されていない情報を使うことで親プロセスのPIDは取得できる)。このため、親がわからないプロセスがあっても問題はない。

 RS3の3つの方法でWSLを起動したときの様子が下の画面だ。

 これはプロセスエクスプローラーを管理者権限で動作させた場合もの。コンソールからubuntu.exeを実行すると、wsl.exeが起動する。しかし、bash.exeの場合にはwsl.exeは起動していない。どの場合もsvchost.exe経由でlxssManagerが起動し、その下でinitが起動している。

 これに対して、現在プレビューが進んでいるRS4では、WSLの起動メカニズムが変更になっている。まず、どのコマンドを使っても、wslhost.exe(C:\Windows\System32\lxss)というプログラムが起動してWSL環境を立ち上げるようだ。さらにwslhost.exeは子プロセスとしてconhost.exe(コンソールウィンドウの動作を定義したプログラム)を起動している。ただしウィンドウハンドルは、親となるプロセス(たとえば、cmd.exe)が所有しているようだ。

 また、LxssManagerから起動されるinitは、コンソールを起動すると2つ親子で起動され、バックグラウンドタスクがある間はそのうちの1つが残り続ける。このあたりの動作をプロセスエクスプローラーで見たのが下の画面である。

 まず、どの場合にも、wslhost.exeが起動している。その前の部分は、RS3と同じく、WSL.EXE(wslコマンドで起動した場合)か、ディストリビューション用コマンド+WSL.EXE、あるいはbash.exeである。

 また、wslhost.exeは、さらに子プロセスとしてconhost.exeを起動している。これはWSL内でコンソールを独自に管理しているからと考えられる(このあたりについては次回、もう少し深く見る予定)。また、LxssManagerが起動されるのは同じだが、そこから起動されるinitが2段階となっている。

 ここで、バックグラウンドで動作するデーモンの1種であるsshd(ただし、事前にopen-sshのインストールが必要)を起動してみる。起動スクリプトは/etc/init.dにあるので、

sudo /etc/init.d/ssh start

とすると、デーモンとしてsshdが起動する。

 この状態で、exitを使ってWSLを抜け、cmd.exeに戻ると、下の画面のような状態になる。このとき、

・LxssManagerから起動されたinitは最初に起動されたもののみとなる
・wslhost.exeは、親のないプロセスとなり実行を続ける(wslhost.exeのpidは変わらない)

initは起動しているため、WSL環境は維持されている。また、この状態になったら、wsl.exeを実行したコンソールウィンドウ(cmd.exeが動作している)を終了させても環境が維持されsshdは動作し続ける。しかし、sshdを終了させるとwslhost.exeも終了する。逆にsshdを動かしたまま、再度wslコマンドを使ってコンソール内でbashを動作させると、新たにwslhost.exeが起動し、sshdを起動したときのwslhost.exeはそのまま残る。

 Linuxでは、デーモンとして起動したプロセスは、起動したユーザーではなく、管理者となるrootのプロセスとして動作し、コンソールデバイス(Linux/Unixではttyという)とは無関係のプロセスとなる。このため、起動したユーザーがログアウトしてしまっても、デーモンプログラムは動作し続けることになる。

 RS3までは、ユーザーがbashから抜けた段階でWSL環境自体が消えてしまっていたため、実行を継続することができなかった。しかし、RS4では、コンソールと結びついていないプロセスの実行が継続できるよう、wslhost.exeが間に入り、最後のプロセスがなくなるまでWSL環境を維持しつつけていると考えられる。

 さて、このバックグラウンドタスクの使い方だが、デーモンの起動に必要なroot権限を考えると、パスワードの手入力が必要となるため、dhcpやdns、sshといったネットワークサービスを起動するのにはあまり向いていない。とはいえ、ローカルでのテスト用にhttpサーバーを起動するといった使い方はありえるだろう。

 一つ考えられるのは、WSLで動作しているLinuxをシェルとしてcmd.exeやpowershellといったWindowsのコマンドライン環境を強化するというものだ。そもそもcmd.exeは、MS-DOS由来であり、Powershellにしても、スクリプト言語としての機能強化はあったものの、いわゆる「シェル」としては、使い勝手がいまいちの部分がある。

 たとえば、bashなどUnix/Linux系のシェルが持っている「ジョブコントロール」や前回ちょっと紹介したtmuxをはじめとする端末仮想化管理ツールなどにより、コマンドライン環境を強化するというわけだ。WSLのbashからWindowsのデスクトッププログラムを起動できるWin32相互運用性の存在やWSLからの起動が高速であることを考えると、コマンドラインの環境やvi、emacsといったUnix/Linux由来のキャラクタベースのツールにLinux並の環境(なにせLinuxそのもの)を与えるという点で多くのメリットがあるように思える。また、Linuxのバイナリがそのまま起動するわけで、Linux用の開発ツールのWindowsへの移植自体も不要となる。

 もっとも、これを「手抜き」と考えるか、「進歩」と考えるのは、人それぞれだとは思うが。

カテゴリートップへ

この連載の記事
1
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
¥177,333
2
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動16.9時間 重量1.59kg ルナグレー 83K100G4JP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動16.9時間 重量1.59kg ルナグレー 83K100G4JP ノートPC
¥107,800
3
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
¥61,800
4
【整備済み品】 富士通 ノートパソコン LIFEBOOK U939 超軽量 薄型 ノートPC ■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第八世代 Core i5-8265U/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK U939 超軽量 薄型 ノートPC ■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第八世代 Core i5-8265U/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥30,800
5
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,970

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
5
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,100
6
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥1,880
7
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
¥1,899
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥4,918
9
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652
10
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
¥699

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン