stop method
Stops the subprocess if running.
Implementation
Future<void> stop() async {
final process = _process;
final session = _ptySession;
if (process == null && session == null) {
return;
}
await _stdoutSub?.cancel();
await _stderrSub?.cancel();
await _exitSub?.cancel();
await _ptySessionSub?.cancel();
_stdoutSub = null;
_stderrSub = null;
_exitSub = null;
_ptySessionSub = null;
process?.kill(ProcessSignal.sigterm);
session?.close();
_process = null;
_ptySession = null;
_running = false;
_markDirty();
}