■[PR][]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
しぃちゃっとは、たまに暴走するので、マシンを再起動する必要が出てくる。外出しているときにも再起動をするにはどうしたらよいか調べた。
WebRemoteというソフトを使うと、Webブラウザから再起動ができる。ただ、ほかにも機能があるせいで、再起動を選ぶまでが少々面倒だ。それに、携帯電話からでも再起動したいのに、V401SHでは画面を出すことができなかった。別の手段を考えるとするか。
まずは、Windowsを再起動させるコマンドについて調べた。Windows XPならshutdown.exeがあるが、再起動させたいのは、あいにくWindows 2000だ。さらに調べると、簡単なVBスクリプトで代用できることがわかったので、それを使うことにした。さて、これをどう実行するか。SSIでやろうとしたら、V401SHでは無理だった。そこで、Perlを使った単純なCGIにしたら成功した。マシンの目の前でやったので、リモートで再起動させた実感がないけれど、外出先でも同じことができると考えると、なんかすごい。
ここまでやり出すと、しぃちゃっとのWebサーバでは対応できなくなってくるので、WebサーバはApacheにしている。Webサーバとお絵描きチャットを分けておくことによって、共倒れも防げる。というより、そうしておかないと、再起動がきちんとできない可能性が高い。
あとは、ルータの問題が解決しないことには運用ができない。
追記:
再起動するVBスクリプトについて。reboot.vbsというファイル名で、以下のスクリプトを作成する。
Set objSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").InstancesOf("Win32_OperatingSystem")
For Each objSystem In objSystemSet
objSystem.Win32Shutdown 2
Next
次に、reboot.cgiというファイル名で、以下のCGIスクリプトを作成。
#!C:\Perl\bin\Perl ←C:\Perl\binは、Perl.exeがある場所を指定
print "Content-type: text/html\n";
print "\n";
print "<html>\n";
print "<head>\n";
print "<title>再起動</title>\n";
print "</head">\n";
print "<body>\n";
print "<p>再起動します。</p>\n";
system "reboot.vbs";
print "</body>\n";
print "</html>\n";
reboot.vbsとreboot.cgiを、CGIが実行できるディレクトリに置いて、reboot.cgiにアクセスすると、サーバマシンが再起動する。これだと、いきなり再起動してしまうので、パスワードでの認証などを入れたほうがよい。