Verethragnaを簡単バージョンアップ
Verethragnaを起動したまま簡単にバージョンアップさせる方法について。
さて、Brynhildrには「brynhildr.exe」のあるフォルダに「new」フォルダを生成してその中にバージョンアップしたい「brynhildr.exe」を入れると自動的に入れ替える機能があります。これをバージョンアップ機能と呼称しておりました。
んで、Verethragnaも同様のバージョンアップ機能を実装しようと考えておりましたが、この方式はセキュリティ面においてあまり好ましくないので見送りました。勘の鋭い方はピンと来るでしょうけどその詳しい話はまたいずれ。
ですので、VerethragnaにはBrynhildrのようなバージョンアップの機能はありません。ですが、「0.10.4」以降であれば、Verethragnaを起動したまま接続したまま(厳密にはちょっと停止してちょっと切断されますが)簡単にバージョンアップする方法がありますのでそちらをお伝えいたします。
まず、VerethraghnaがWindowsサービスとして動作するように登録されていることが条件です。起動時のダイアログで「Service」を「Install」してください。通常起動ですとプロセスの再起動ができませんので。
次に、バッチファイルを作ります。名前はてきとーに「バージョンアップ.bat」でも。中身は以下の通りで。
sc stop "Verethragna Service"
timeout /T 2
cd %~dp0
move /y verethragna.exe ../verethragna.exe
sc start "Verethragna Service"
あくまでもサンプルで。
これをクライアント側で作ってからVerethragnaのファイル転送機能を使ってサーバー側に送ります。(Verethragnaでサーバーと接続中にウィンドウに「バージョンアップ.bat」をドラッグ&ドロップ)
すると、サーバー側の「recv」フォルダにこのファイルが配置されます。
次に、バージョンアップしたいモジュール「verethragna.exe」も同様にファイル転送します。
すると、サーバー側の「recv」フォルダにバージョンアップしたいモジュールも配置されます。
この状態で、Verethragnaで「recv」フォルダの「バージョンアップ.bat」を管理者権限で実行させます。右クリックでメニューから「管理者として実行」です。
そうすると、
1.Verethragnaのサービスの停止
2.サービスの停止を2秒待つ
3.デフォルトフォルダをrecvに移動
4.recv内のモジュールを現状のモジュールに上書き
5.Verethragnaのサービスの開始
という流れになりバージョンアップが完了します。
もちろん別の方法でも構いません。やることはサービスを止めてファイルを上書きするだけですので、バッチファイルを管理者権限にしたりPowerShellで書いてコマンドで管理者権限に引き上げたりVBScriptで組むなり別のモジュールに組み込むなり方法はいくつもあると思います。
んで、次回からは新しいモジュールをファイル転送してバッチファイルを実行するだけでバージョンアップが完了するとゆー算段です。
とゆー風に自分の場合はこんな感じでバージョンアップを実施しておりますのでぜひお試しくださいませー。