diff --git a/cleanup.sh b/cleanup.sh
index 08e5772804a7fd86a23984d06ab9ebcdc9f45aca..7bfdcd6619ef9cbedd807590e0021e45d7427ba6 100755
--- a/cleanup.sh
+++ b/cleanup.sh
@@ -1,5 +1,16 @@
 #!/bin/bash
 
-kill $(ps -u | grep -m1 -- "-L" | grep -- "-N" | awk '{print $2}')
+if [[ $# -lt 1 ]]
+then
+    echo -e "Error: No ETH username is specified, terminating script\n"
+    exit 1
+fi
 
-ssh -T $1@euler.ethz.ch bkill $(cat reconnect_info  | grep BJOB | awk '{print $NF}') 
\ No newline at end of file
+VSC_USERNAME=$1
+
+VSC_TUNNEL=$(cat reconnect_info | grep -o -E '[0-9]+:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+):[0-9]+')
+TUNNEL_JOBS=$(ps -u | grep $VSC_TUNNEL | grep ssh | awk '{ print $2 }')
+
+for TUNNEL_JOB in $TUNNEL_JOBS; do echo $TUNNEL_JOB; kill $TUNNEL_JOB; done
+
+ssh -T $VSC_USERNAME@euler.ethz.ch bkill $(cat reconnect_info  | grep BJOB | awk '{print $NF}')