Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


wsl2:ubuntu:memcached

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
wsl2:ubuntu:memcached [2020/12/11 23:45]
y2sunlight [サービスの自動起動]
wsl2:ubuntu:memcached [2020/12/24 09:45] (現在)
y2sunlight [WSL2/Ubuntu に memcached サービス をインストールする]
行 1: 行 1:
-> 編集中 +====== WSL2/Ubuntu に memcached サービス インストールする ======
- +
-====== WSL2/Ubuntu 上での memcached サービスインストール ======+
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-12-10//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-12-10//
  
行 9: 行 7:
  
   * [[wsl2:install|WSL2 インストール]]   * [[wsl2:install|WSL2 インストール]]
 +  * [[wsl2:command|WSL2 コマンドリファレンス]]
   * [[wsl2:interop|WSL2 LinuxとのWindowsの相互運用性]]   * [[wsl2:interop|WSL2 LinuxとのWindowsの相互運用性]]
-  * [[wsl2:command|WSL2 コマンドリファレンス]] 
   * [[wsl2:clone|WSL2 ディストリビューションの複製]]   * [[wsl2:clone|WSL2 ディストリビューションの複製]]
   * [[wsl2:terminal|Windows ターミナル]]   * [[wsl2:terminal|Windows ターミナル]]
行 94: 行 92:
 </code> </code>
  
-Ubuntuを最初に起動した時に設定するユーザは sudoグループに入っているようなので、上の修正をすれば十分です。id を実行して確かめてみましょう:+Ubuntuを最初に起動した時に設定したユーザは sudoグループに入っているようなので、上の修正をすれば十分です。id を実行して確かめてみましょう:
  
 <code bash> <code bash>
行 102: 行 100:
  
 パスワードが不要になるような設定は、特にサービスをWindows側で自動起動する場合に必要になります。 パスワードが不要になるような設定は、特にサービスをWindows側で自動起動する場合に必要になります。
 +
 +> ''注意''
 +> 上の''id''コマンドの結果は Microsoft Store からインストールした場合だけです。
  
 \\ \\
行 279: 行 280:
 ==== Windowsからのテスト ==== ==== Windowsからのテスト ====
  
-Windows側から先に格納したデータを取得してみます。+Windows側から先に格納したmemcacheのデータを取得してみます。
  
-PowerShellで ''telnet'' を起動します。+PowerShellで ''telnet'' を起動します。''telnet'' をインストールしていない場合は、本編の「[[tools:telnet|Telnet]]」を参照するか、[[tools:teraterm|TeraTerm]] などの任意のTCPポートに接続できるアプリケーションをご用意下さい
  
 <code powershell> <code powershell>
行 323: 行 324:
  
 ===== サービスの自動起動 ===== ===== サービスの自動起動 =====
-> TODO:説明書く+ 
 +通常のLinuxでは、ブートシーケンスの中で、カーネルにより ''プロセスID = 1'' の 初期プロセス(''SysV init'' または ''Systemd'' などが有名)が起動され、この初期プロセスによって各種デーモンが起動されます。WSL2では、''SysV init'' が採用されていますが、Windows との相互運用性のためにカスタマイズさており、ブートシーケンスの中でデーモンの起動は行われません。 
 + 
 +本章は、開発用のmemcachedサービス設置することが目的なので、当然のことながら、Windows起動時にmemcachedサービスも起動したいわけです。この問題を解決するために、ネットではいろいろな策が考えられていますが、本章ではWindowsのスタート時に ''wsl'' コマンドで Ubuntu側に設置したサービス起動用のスクリプトを起動する方法を提案します。 
 + 
 +\\ 
 + 
 +==== サービス起動用のスクリプト ==== 
 + 
 +Ubuntuのbashターミナルを起動して、''/usr/local/bin'' にサービス起動用のスクリプト( ''wsl-service-start.sh'' )を設置します。
  
 <code bash> <code bash>
行 329: 行 339:
 $ sudo vi wsl-service-start.sh $ sudo vi wsl-service-start.sh
 </code> </code>
 +
 +スクリプトの内容は以下の通りです。''sudo vi'' で新規に作成して下さい。
  
 {{fa>folder-open-o}} ** /usr/local/bin/wsl-service-start.sh ** {{fa>folder-open-o}} ** /usr/local/bin/wsl-service-start.sh **
行 346: 行 358:
 done done
 </code> </code>
 +
 +  * services配列に起動するサービス名を設定して下さい。仕掛けはご覧の通りです。
 +  * サービスが起動していない場合のみ service コマンドでサービスを起動します。
 +
 +スクリプトが出来たら、''sudo chmod'' で実行権限を付与します。
  
 <code bash> <code bash>
 $ sudo chmod +x wsl-service-start.sh $ sudo chmod +x wsl-service-start.sh
 </code> </code>
 +
 +\\
 +
 +==== スタートアップの登録 ====
 +
 +Windows側でユーザのスタートアップフォルダを開きます。[ファイル名を指定して実行]から開くには、''shell:startup'' を実行します。また、PowerShell から開くには以下のように入力して下さい。
  
 <code powershell> <code powershell>
 > explorer shell:startup > explorer shell:startup
 </code> </code>
 +
 +このフォルダの中に、以下のファイル( ''wsl-service-start.bat'' )を作成して下さい。
  
 {{fa>folder-open-o}} ** {User Startup}\wsl-service-start.bat ** {{fa>folder-open-o}} ** {User Startup}\wsl-service-start.bat **
行 359: 行 384:
 wsl -d Ubuntu-20.04 -u y2sunlight sudo wsl-service-start.sh wsl -d Ubuntu-20.04 -u y2sunlight sudo wsl-service-start.sh
 </code> </code>
 +
 +  * ''-d'' にはディストリビューション名を指定します。
 +  * ''-u'' にはユーザ名を指定します。このユーザは[[#etc_sudoers|sudoers]]でパスワード無しでsudo が実行できるようにしておくのが良いかもしれません。
 +
 +準備が出来たら、Ubuntuを停止(''wsl --shutdown'')して、wsl-service-start.batを実行して下さい。memcachedのポート(''11211'')が開いていたら成功です:
 +
 +<code powershell>
 +> netstat -an|Select-String "11211"
 +
 +  TCP         127.0.0.1:11211        0.0.0.0:             LISTENING
 +</code>
 +
 +尚、ここでは、ユーザのスタートアップフォルダを利用しましたが、タスクスケジューラなどの他の適当な方法でも良いと思います。理想的には、Windowsの起動時に ''wsl -d Ubuntu-20.04'' のみを実行し、Ubuntuのブートシーケンスの中で必要なサービスを起動するのが、エレガンスだと思うのですが、手軽な良い方法が見つかりませんでした。何か妙案のある方はコメント頂ければ有難いです。
  
 \\ \\
  
  
wsl2/ubuntu/memcached.1607697947.txt.gz · 最終更新: 2020/12/11 23:45 by y2sunlight