Hide things not appropriate behind is_backend

Also add explicit command to exit the server, FIO_QUIT.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/server.c b/server.c
index bd49b9c..541216c 100644
--- a/server.c
+++ b/server.c
@@ -25,23 +25,26 @@
 {
 	struct sockaddr addr;
 	unsigned int len = sizeof(addr);
-	int sk;
+	int sk, do_exit = 0;
 
 again:
 	sk = accept(listen_sk, &addr, &len);
-	printf("got a hit\n");
 	if (sk < 0) {
 		log_err("fio: accept failed\n");
 		return -1;
 	}
 
 	/* read forever */
-	for (;;) {
+	while (!do_exit) {
 		char buf[131072];
 		int ret;
 
 		ret = recv(sk, buf, 4096, 0);
 		if (ret > 0) {
+			if (!strncmp("FIO_QUIT", buf, 8)) {
+				do_exit = 1;
+				break;
+			}
 			parse_jobs_ini(buf, 1, 0);
 			exec_run();
 			reset_fio_state();
@@ -54,8 +57,11 @@
 	}
 
 	close(sk);
-	printf("closed\n");
-	goto again;
+
+	if (!do_exit)
+		goto again;
+
+	return 0;
 }
 
 int fio_server(void)