diff --git a/.gitignore b/.gitignore
index fb8d1973e9a07d5509be333713413aa355f2f17b..af5f56533fa51f59bd52b39a413b9b11a88bf4f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,6 @@ target/
 .classpath
 .project
 .settings
+
+# logfiles
+screen*log*
diff --git a/makefile b/makefile
index 515573a6f0121c754cfa63a18c0d29f69ca6483a..e71a18f2a691578374c15ca076c20bcac89b6f3c 100644
--- a/makefile
+++ b/makefile
@@ -21,7 +21,7 @@
 # ** end header
 #
 
-
+SHELL:=/bin/bash
 run: compile
 	mvn exec:exec
 
@@ -60,7 +60,30 @@ clean: clean-antlr
 clean-antlr:
 	rm -rf target/generated-sources/antlr4/
 
+run-server-screen:
+	@if test "$$(screen -ls | grep -c 'caosdb-screen')" -eq "1"; then \
+		echo "server is probably running. try 'screen -ls'"; \
+		exit 1 ; \
+	fi
+	# start and wait for server
+	@screen -L -S caosdb-screen -t server -d -m -A make run
+	@sleep 2
+	@while [ 1 -eq 1 ] ; do \
+		screen -S caosdb-screen -X hardcopy .screen.log || break ; \
+		[ $$(grep -c "org.restlet.ext.jetty.JettyServerHelper start" .screen.log) -eq 0 ] || break ; \
+	done; \
+
+
+stop-server-screen:
+	# stop screen session with server
+	@screen -S caosdb-screen -X hardcopy screen.log || true
+	@screen -S caosdb-screen -p server -X stuff "^C"
+
 run-debug-screen:
+	@if test "$$(screen -ls | grep -c 'caosdb-screen')" -eq "1"; then \
+		echo "server is probably running. try 'screen -ls'; \
+		exit 1 ; \
+	fi
 	# start and wait for server
 	@screen -L -S caosdb-screen -t server -d -m -A make run-debug
 	@sleep 2