class_docstr: Start RPC tracker on a separate process.
  
  Python implementation based on PopenWorker.
  
  Parameters
  ----------
  host : str
      The host url of the server.
  
  port : int
      The TCP port to be bind to
  
  port_end : int, optional
      The end TCP port to search
  
  silent: bool, optional
      Whether run in silent mode
  
  reuse_addr: bool, optional
      Allows the kernel to reuse a local socket in TIME_WAIT state.
  
  timeout: float, optional
       set a timeout for all operations on the socket
docstr: Terminate the server process
docstr_tok: ["Terminate","the","server","process"]
code: def terminate(self):
      """Terminate the server process"""
      if self.proc:
          if self.proc.is_alive():
              self._stop_tracker()
          self.proc.join(0.1)
          if self.proc.is_alive():
              logger.info("Terminating Tracker Server...")
              self.proc.kill()
          self.proc = None
  
imports: import asyncio
  import heapq
  import logging
  import socket
  import threading
  import errno
  import struct
  import json
  from tvm.contrib.popen_pool import PopenWorker
  from .._ffi.base import py_str
  from .None import base
  from .base import RPC_TRACKER_MAGIC, TrackerCode
label_desc: Use image node_id 3 for calling the Tracker obj's underlying member method code with example usage: obj.terminate() without return types