diff --git a/test/cpp/qps/client.cc b/test/cpp/qps/client.cc
index 214711e205be6a7181df8a469aa47a8af05a83ae..7c9763a332d712cb6b4c132b7334116bf02ada4b 100644
--- a/test/cpp/qps/client.cc
+++ b/test/cpp/qps/client.cc
@@ -233,11 +233,11 @@ static void RunServer() {
 }
 
 int main(int argc, char **argv) {
+  signal(SIGINT, sigint_handler);
+
   grpc_init();
   ParseCommandLineFlags(&argc, &argv, true);
 
-  signal(SIGINT, sigint_handler);
-
   RunServer();
 
   grpc_shutdown();
diff --git a/test/cpp/qps/server.cc b/test/cpp/qps/server.cc
index 89fdfeb0cb97c36998438672bea77036e03bbcd5..7d9a9d1d28e6ede6dcf83df8a001508fd5f67b4a 100644
--- a/test/cpp/qps/server.cc
+++ b/test/cpp/qps/server.cc
@@ -185,11 +185,11 @@ static void RunServer() {
 }
 
 int main(int argc, char** argv) {
+  signal(SIGINT, sigint_handler);
+
   grpc_init();
   ParseCommandLineFlags(&argc, &argv, true);
 
-  signal(SIGINT, sigint_handler);
-
   GPR_ASSERT(FLAGS_port != 0);
   RunServer();
 
diff --git a/test/cpp/qps/single_run_localhost.sh b/test/cpp/qps/single_run_localhost.sh
index 317202a6abdf86ae7fa4a7dbcb08c361c387aacb..310a0824bb3b9b84e9d83d1aabd5432230f0ba47 100755
--- a/test/cpp/qps/single_run_localhost.sh
+++ b/test/cpp/qps/single_run_localhost.sh
@@ -19,9 +19,6 @@ SERVER_PID=$!
 bins/$config/qps_client -driver_port 10001 &
 CLIENT_PID=$!
 
-# wait for startup
-sleep 2
-
 export QPS_SERVERS=localhost:10000
 export QPS_CLIENTS=localhost:10001