diff --git a/src/calibre/srv/loop.py b/src/calibre/srv/loop.py index a237244902..8005dc1c7c 100644 --- a/src/calibre/srv/loop.py +++ b/src/calibre/srv/loop.py @@ -648,8 +648,13 @@ class ServerLoop(object): if iswindows: self.control_in.sendall(what) else: - self.control_in.write(what) - self.control_in.flush() + try: + self.control_in.write(what) + self.control_in.flush() + except BrokenPipeError: + self.create_control_connection() + self.control_in.write(what) + self.control_in.flush() def wakeup(self): self.write_to_control(WAKEUP)