RunCommandContext run the command, with a context, which may cancel before command finished..
If so the process would be destroyed, an error will be return.
RunCommandTimeout run the command, with a timeout value.
If command does not finish before timeout, the process would be destroyed, a timeout error will be return.