stop method

Future<void> stop()

Stop the gRPC server

Implementation

Future<void> stop() async {
  if (_serverProcess == null) {
    debugPrint('[ServerProcessManager] Server not running');
    return;
  }

  debugPrint('[ServerProcessManager] Stopping server...');

  // Try graceful shutdown first
  _serverProcess!.kill(ProcessSignal.sigterm);

  // Wait for process to exit
  try {
    await _serverProcess!.exitCode.timeout(
      const Duration(seconds: 5),
      onTimeout: () {
        debugPrint('[ServerProcessManager] Graceful shutdown timed out, force killing');
        _serverProcess!.kill(ProcessSignal.sigkill);
        return -1;
      },
    );
  } catch (e) {
    debugPrint('[ServerProcessManager] Error stopping server: $e');
  }

  _serverProcess = null;
  debugPrint('[ServerProcessManager] Server stopped');
}