should maybe remove `failOnNonZeroResultCode()` to be safer (e.g. if not running).  (out of interest, as it stands what happens if you invoke stop when it is already stopped?)