diff --git a/platforms/posix/cmake/sitl_tests.cmake b/platforms/posix/cmake/sitl_tests.cmake
index 96e9e5c77a7acf38cecfdadaed3792ba6bcb6a19..f8b29ceec0fb39ce8834b91e7878716ca88f9671 100644
--- a/platforms/posix/cmake/sitl_tests.cmake
+++ b/platforms/posix/cmake/sitl_tests.cmake
@@ -76,9 +76,23 @@ add_test(NAME mavlink
 
 set_tests_properties(mavlink PROPERTIES FAIL_REGULAR_EXPRESSION "mavlink FAILED")
 set_tests_properties(mavlink PROPERTIES PASS_REGULAR_EXPRESSION "mavlink PASSED")
-
 sanitizer_fail_test_on_error(mavlink)
 
+# Shutdown test
+add_test(NAME shutdown
+	COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh
+		$<TARGET_FILE:px4>
+		none
+		none
+		test_shutdown
+		${PX4_SOURCE_DIR}
+		${PX4_BINARY_DIR}
+	WORKING_DIRECTORY ${SITL_WORKING_DIR})
+
+#set_tests_properties(shutdown PROPERTIES FAIL_REGULAR_EXPRESSION "shutdown FAILED")
+set_tests_properties(shutdown PROPERTIES PASS_REGULAR_EXPRESSION "Shutting down")
+sanitizer_fail_test_on_error(shutdown)
+
 # run arbitrary commands
 set(test_cmds
 	hello
diff --git a/posix-configs/SITL/init/test/test_shutdown b/posix-configs/SITL/init/test/test_shutdown
new file mode 100644
index 0000000000000000000000000000000000000000..86274883cacad5e2e186f8f989516ae40553d897
--- /dev/null
+++ b/posix-configs/SITL/init/test/test_shutdown
@@ -0,0 +1,95 @@
+#!/bin/sh
+# PX4 commands need the 'px4-' prefix in bash.
+# (px4-alias.sh is expected to be in the PATH)
+. px4-alias.sh
+
+uorb start
+
+param load
+
+param set BAT_N_CELLS 3
+param set MAV_TYPE 22
+param set VT_TYPE 2
+param set SYS_RESTART_TYPE 0
+
+dataman start
+
+simulator start -t
+tone_alarm start
+gyrosim start
+accelsim start
+barosim start
+gpssim start
+measairspeedsim start
+pwm_out_sim start
+
+sensors start
+commander start
+land_detector start vtol
+navigator start
+ekf2 start
+vtol_att_control start
+mc_pos_control start
+mc_att_control start
+fw_pos_control_l1 start
+fw_att_control start
+wind_estimator start
+
+#mixer load /dev/pwm_output0 ROMFS/sitl/mixers/standard_vtol_sitl.main.mix
+
+ver all
+
+logger start -e -t
+
+mavlink boot_complete
+
+sleep 2
+
+echo "Boot complete"
+
+# status of all running modules
+echo "Checking status of all modules"
+logger status
+pwm_out_sim status
+sensors status
+commander status
+land_detector status
+navigator status
+ekf2 status
+mc_pos_control status
+mc_att_control status
+fw_pos_control_l1 status
+fw_att_control status
+wind_estimator status
+dataman status
+uorb status
+
+# stop all
+echo "Stopping all modules"
+logger stop
+pwm_out_sim stop
+mc_att_control stop
+fw_att_control stop
+mc_pos_control stop
+fw_pos_control_l1 stop
+navigator stop
+commander stop
+land_detector stop
+ekf2 stop
+wind_estimator stop
+sensors stop
+
+sleep 2
+
+simulator stop
+tone_alarm stop
+gyrosim stop
+#accelsim stop
+#barosim stop
+gpssim stop
+measairspeedsim stop
+
+dataman stop
+#uorb stop
+
+shutdown