DATA/BYBIT/daemon/collection/bybit_total_heartbeat.php
<?php
// ============================================================
// heartbeat : bybit_total_heartbeat.php
// 데몬 생존 기록 + kill_flag 체크
// 타격기에서 include 호출
// ============================================================

if ($pdo) {
    // heartbeat 기록
    $stmt_hb = $pdo->prepare("
        INSERT INTO daemon_record (
            d_id, d_category, d_pid, d_status,
            d_heartbeat, d_ip, d_start_time, d_memo, d_kill_flag
        )
        VALUES (
            :id, 'BYBIT_TOTAL', :pid, 'RUNNING',
            NOW(), 'CLI_DAEMON', NOW(), 'BYBIT TOTAL LINEAR FUTURES', 0
        )
        ON DUPLICATE KEY UPDATE
            d_pid       = VALUES(d_pid),
            d_status    = 'RUNNING',
            d_heartbeat = NOW(),
            d_memo      = VALUES(d_memo)
    ");
    $stmt_hb->execute([':id' => $DAEMON_ID, ':pid' => getmypid()]);

    // kill_flag 체크
    $stmt_kill = $pdo->prepare("SELECT d_kill_flag FROM daemon_record WHERE d_id = :id LIMIT 1");
    $stmt_kill->execute([':id' => $DAEMON_ID]);
    $kill_flag = (int)($stmt_kill->fetchColumn() ?: 0);

    if ($kill_flag === 1) {
        $stmt_stop = $pdo->prepare("
            UPDATE daemon_record
            SET d_status='STOPPED', d_heartbeat=NOW(), d_pid=0
            WHERE d_id=:id
        ");
        $stmt_stop->execute([':id' => $DAEMON_ID]);
        exit(0);
    }
}