特定のポートが localhost で開いているかどうかをテストし、開いていない場合は再起動します。
Windowsで実行されます。
これは、Windows 7でテストされ、動作するはずです。すべての NT フレーバーで動作するはずです。
function testPort($port, $timeout = 5) {
if(!fsockopen('127.0.0.1', $port, $errno, $errstr, $timeout)) {
exec("shutdown.exe /r");
}
}
testPort(8080);
これを行うための PHP 拡張機能を作成できます。ソケット チェック部分は PHP で直接実行できるため、拡張機能は Windows API を使用してマシンを再起動する必要があります。拡張機能の書き方についての質問です。
InitiateSystemShutdownは、実際の再起動を行うために呼び出すことができる Win32 API 関数です。
その特定のポートでローカルホストへの TCP 接続 (ソケット) を開くために必要なソケットを使用します。接続が確立されている場合はポートが開いていることを意味し、そうでない場合 (タイムアウトまたは拒否された場合)、ポートは閉じられます。
それはTCPポート専用です
「再起動」部分には、次を使用しますexec
('shutdown -r');