こんにちは。笹亀です。
8月に入り暑さが厳しくて外出が辛い日々です。先月(7月)の中旬(14,15,16日)頃に日光の方へアシアルメンバー数名と他社さんと合同で開発合宿に行っておりました。お世話になった宿の方のお話だと「先月に5件も開発合宿のお客様がいらっしゃった」とのことで、開発合宿文化はまだまだあるということもわかり、嬉しくおもいました。
今回は久しぶりにPHPネタになりますが、最近のPHPではまったことについて、自分用のメモの意味でもブログに残そうとおもいます。
PHPの技術もだいぶ成熟した感じのイメージを個人的には持っておりますが、まだまだハマることはたくさんあります(ハマると予想外に原因調査に時間がかかることがおおい^^;)
さて、早速、ハマったことについてご紹介します。
下記のようにサンプルのスクリプトを準備しました。コマンドラインからプロセス常駐型(起動しっぱなし)で30秒毎にステータスを監視してステータスがOKならOKファイルを作成し、ステータスNGならOKファイルを削除するプログラムです。
<?php
// ステータスチェックのOKのときに作成するファイル(デモ用)
$check_ok = "/home/sasa/check_OK";
while (1) {
// ステータスのチェックをする
$isActive = check_status();
// デバック用にステータスを出力
echo "----\n";
echo date('Y-m-d H:i:s') . "\n";
var_dump($isActive);
// ステータスがFalseだった場合はOKファイル削除する
if (!$isActive) {
// ファイルの有無をチェック(あったら削除する)
if (is_file($check_ok)) {
// ファイルを削除する
$cmd = "rm -f " . $check_ok;
exec($cmd, $ret, $status);
if ($status) {
echo $test_file . "の削除に失敗しました";
}
}
} elseif ($isActive) {
// ファイルの有無をチェック(なかったら作成する)
if (!is_file($check_ok)) {
// ファイルを作成する
$cmd = "touch " . $check_ok;
exec($cmd, $ret, $status);