Cómo enviar un nuevo comando a un subproceso

Anteriormente, hice una pregunta sobre cómo configurar una interfaz gráfica para recibir líneas de un subproceso sin que todo el progtwig se bloquee. Eso ahora es funcional.

Ahora, no puedo averiguar cómo enviar nuevas líneas a un subproceso. He intentado usar process.communicate, pero podría haberlo usado mal. También probé la solución de esta pregunta , pero self.process.stdin.write('stop\n'.encode()) no parece funcionar. ¿Cómo envío nuevos comandos al subproceso python secundario?

Código relevante:

 self.process = subprocess.Popen([ "python", "-u", dir + "start.py" ], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, cwd=dir) 

Los datos pueden estar atascados en la tubería. Agregue self.process.stdin.flush() después de la escritura.