private void disableEcho() {
		Termios.ByReference tmios = new Termios.ByReference();
		LIB_POSIX.tcgetattr(fd, tmios);
		tmios.c_lflag &= ~Termios.ECHO;
		LIB_POSIX.tcsetattr(fd, Termios.TCSANOW, tmios);
	}
{@inheritDoc}

@implNote This uses {@link ProcessBuilder} to launch the subprocess. See its documentation
          for more details of the parameters of this method.
@implNote This actually launches a special "leader" subprocess, which sets up the session and
          then executes the requested program. The requested program image replaces the
          leader so that the returned process is indeed a handle to the requested program.
          Ordinarily, this does not matter, but it may be useful to know when debugging.
          Furthermore, if special characters are sent on the parent before the image is
          replaced, they may be received by the leader instead. For example, Ctrl-C might be
          received by the leader by mistake if sent immediately upon spawning a new session.
          Users should send a simple command, e.g., "echo", to confirm that the requested
          program is active before sending special characters.
Ghidra/Framework/Pty/src/main/java/ghidra/pty/unix/UnixPtyChild.java