mesh: Return exit status for non-interactive
diff --git a/mesh/main.c b/mesh/main.c
index d0f71c2..3e1484f 100644
--- a/mesh/main.c
+++ b/mesh/main.c
@@ -1904,6 +1904,7 @@
 int main(int argc, char *argv[])
 {
 	GDBusClient *client;
+	int status;
 	int len;
 	int extra;
 
@@ -1989,7 +1990,7 @@
 	if (!onoff_client_init(PRIMARY_ELEMENT_IDX))
 		g_printerr("Failed to initialize mesh generic On/Off client\n");
 
-	bt_shell_run();
+	status = bt_shell_run();
 
 	g_dbus_client_unref(client);
 
@@ -2001,7 +2002,7 @@
 	g_list_free(service_list);
 	g_list_free_full(ctrl_list, proxy_leak);
 
-	return EXIT_SUCCESS;
+	return status;
 
 fail:
 	bt_shell_cleanup();