Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

WSLの自動起動ではまり

Window11にてWSLを自動起動させて、Linuxのサービスを外部から

使わせたい!!

 

というのが目標でしたが、苦労したのでメモ。

 

現状のWSLではsystemdが使えてデーモン起動はsystemdの登録を

行えばいいのですが、かんじんのWSLがターミナルを閉じると

落ちてしまうのが困ります。(仕様らしい)

まあ、一時的に使う用途の場合、この仕様ならメモリ圧迫も気にせず

使えていいのだとは思います。

私のようにWindowsの皮だけかぶったLinuxだと思っていると

サーバー用途で使いたくなってしまうのでこういう悩みがでます。

 

それでいろいろみなさん苦労されていますが、結論は

「ターミナルを開いたままにする。」

が正解だと思います。ただ目に見えて操作できては困るので、

「非表示」で開いたままにするという技を使います。

参考にしたサイトではVBScriptでやっていましたが、

もう推奨されないのでPowerShellでやるように考えました。

どうやるかというと Shell.Applicationオブジェクトを

PowerShellで作成して、ShellExecuteコマンドでウインドウ非表示起動

にするというものです。

VBSでやったことある人はその応用だとわかると思います。

 

それで自動実行させようとするとPowerShellを起動させる方法に

ぶつかります。解決方法はバッチファイルから起動が正解です。

じゃあそのバッチファイルを起動するにはということですが、

管理者権限が必要なので、スタートアップで起動させられない

という問題にあたります。

 

なので解決方法はタスクスケジューラ―で起動時実行に

管理者権限で起動させるが正解です。

 

ね? いやになるでしょう(笑)

Windowsの知識も必要、Linuxの知識も必要です。

まさに総合力で問題解決した先にWindowsの皮をかぶったLinux

実現できます。

 

みなさんがんばりましょう。

 

ではでは。