diff --git a/monitor/main.c b/monitor/main.c
index 38e4fc9..be3d55e 100644
--- a/monitor/main.c
+++ b/monitor/main.c
if (ellisys_server)
ellisys_enable(ellisys_server, ellisys_port);
- if (tty)
- control_tty(tty, tty_speed);
+ if (tty && control_tty(tty, tty_speed) < 0)
+ return EXIT_FAILURE;
- if (control_tracing() < 0)
+ /* Accept error here if we have a successfully opened TTY
+ * (could happen if btmon is run as a normal user).
+ */
+ if (control_tracing() < 0 && !tty)
return EXIT_FAILURE;
exit_status = mainloop_run();