DATA/BYBIT/daemon/web_socket/daemon_bybit_websocket.php
#!/usr/bin/php
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
date_default_timezone_set('Asia/Seoul');

$DAEMON_ID = pathinfo(__FILE__, PATHINFO_FILENAME);

if (php_sapi_name() !== 'cli') {
    echo "CLI 전용 데몬입니다.\n";
    exit;
}

// 함수 선언은 최초 1회만
include __DIR__ . '/bybit_total_striker.php';

while (true) {
    try {
        include __DIR__ . '/bybit_total_env.php';        // ← 루프 안으로 이동, 매번 DB 재연결 + 심볼 재조회
        include __DIR__ . '/bybit_total_heartbeat.php';
        run_striker($pdo, $clean_symbols, $WS_URL);      // ← 직접 함수 호출
    } catch (Throwable $e) {
        echo "[" . date('H:i:s') . "] 몸통 오류: " . $e->getMessage() . "\n";
        sleep(3);
    }
    sleep(5);
}