サーバーにアクセスが無くなったら自動でシャットダウン
2017-02-23


はじめにお読みください。→当サイトのリンクと免責事項[LINK]

サーバーは基本常時オンが通常と思いますが、電気代がもったいないので常時オフとします。
サーバーのダウンはクライアントのアクセスが無くなった後サーバー自身がシャットダウンすることとします。
基本はハードディスクのアクセスを管理してアクセスのない時間が10分を超えたらシャットダウンします。
VB.NETで作りますがサービスとして開発するには無償のVS Express2013 for DesktopではWindowsサービス テンプレート が出てきません。仕方がないのでコンソール アプリケーションで開発しタスク スケジューラでPC起動時に実行するようにします。
コンソール アプリケーションのソースです。
Imports System
Imports System.IO
Imports System.Text
Module Module1
    Dim stop_code As Integer = 0
    Sub Main()
        'コンピュータ名
        '"."はローカルコンピュータを表す
        'コンピュータ名は省略可能(省略時は".")
        Dim machineName As String = "."
        'カテゴリ名
        Dim categoryName As String = "PhysicalDisk"
        'カウンタ名
        Dim counterName As String = "Disk Transfers/sec"
        'インスタンス名
        Dim instanceName As String = "2 K: L:"
        'PerformanceCounterオブジェクトの作成
        Dim pc As New System.Diagnostics.PerformanceCounter( _
            categoryName, counterName, instanceName, machineName)
        TextWite()
        Do
            TextRead()
            If pc.NextValue() * 1000 <> 0 Then
                TextWite()
            End If
            System.Threading.Thread.Sleep(10)
        Loop Until stop_code = 1
        End
    End Sub
    Public Sub TextWite()
        Dim fileName As String = "C:\TEMP\ShutDownCounter.txt"
        'ファイルを開く
        Dim fs As New System.IO.FileStream(fileName, _
            System.IO.FileMode.Open, _
            System.IO.FileAccess.Write, _
            System.IO.FileShare.ReadWrite)
        'FileStreamを基にしたStringReaderのインスタンスを作成
        Dim enc As System.Text.Encoding = _
            System.Text.Encoding.GetEncoding("shift_jis")

'************************************ ここからは単に時刻の固定長テキストを作っている
        Dim dNOW As System.DateTime = System.DateTime.Now
        Dim syesre_ As String
        Dim smanth_ As String
        Dim sday_ As String

続きを読む


コメント(全0件)


記事を書く
powered by ASAHIネット