# spacepy.toolbox.timeout_check_call

`spacepy.toolbox.``timeout_check_call`(timeout, *args, **kwargs)

  Call a subprocess with a timeout.

  Like `subprocess.check_call()`, but will terminate the process and raise `TimeoutError` if it runs for too long.

  This will only terminate the single process started; any child processes will remain running (this has implications for, say, spawing shells.)

  Parameters: | timeout : float Timeout, in seconds. Fractions are acceptable but the resolution is of order 100ms. args : sequence Arguments passed through to `subprocess.Popen` kwargs : dict keyword arguments to pass to `subprocess.Popen`
  Returns: | out : int 0 on successful completion
  Raises: | TimeoutError : If subprocess does not return in `timeout` seconds. CalledProcessError : if command has non-zero exit status

  Examples

      >>> import spacepy.toolbox as tb
      >>> tb.timeout_check_call(1, 'sleep 30', shell=True) #raises TimeoutError