diff --git a/launch/mavros_posix_sitl.launch b/launch/mavros_posix_sitl.launch
index a3efca9e76d3db9c5422fec4649e917de11a28f3..70bb33818156ba681acad54cbfbc5796de85f9ab 100644
--- a/launch/mavros_posix_sitl.launch
+++ b/launch/mavros_posix_sitl.launch
@@ -24,6 +24,8 @@
     <!-- MAVROS configs -->
     <arg name="fcu_url" default="udp://:14540@localhost:14557"/>
     <arg name="respawn_mavros" default="false"/>
+    <!-- PX4 configs -->
+    <arg name="interactive" default="true"/>
     <!-- PX4 SITL and Gazebo -->
     <include file="$(find px4)/launch/posix_sitl.launch">
         <arg name="x" value="$(arg x)"/>
@@ -37,6 +39,7 @@
         <arg name="sdf" value="$(arg sdf)"/>
         <arg name="rcS" value="$(arg rcS)"/>
         <arg name="gui" value="$(arg gui)"/>
+        <arg name="interactive" value="$(arg interactive)"/>
         <arg name="debug" value="$(arg debug)"/>
         <arg name="verbose" value="$(arg verbose)"/>
         <arg name="paused" value="$(arg paused)"/>
diff --git a/launch/posix_sitl.launch b/launch/posix_sitl.launch
index 215716db0724584c95bee19b2129f9218f3548cd..a9c7dc5259a8a553a057905a9249b84dc0b0bfc2 100644
--- a/launch/posix_sitl.launch
+++ b/launch/posix_sitl.launch
@@ -21,8 +21,12 @@
     <arg name="verbose" default="false"/>
     <arg name="paused" default="false"/>
     <arg name="respawn_gazebo" default="false"/>
+    <!-- PX4 configs -->
+    <arg name="interactive" default="true"/>
     <!-- PX4 SITL -->
-    <node name="sitl" pkg="px4" type="px4" output="screen" args="$(find px4) $(arg rcS)"/>
+    <arg unless="$(arg interactive)" name="px4_command_arg1" value="-d"/>
+    <arg     if="$(arg interactive)" name="px4_command_arg1" value=""/>
+    <node name="sitl" pkg="px4" type="px4" output="screen" args="$(find px4) $(arg rcS) $(arg px4_command_arg1)"/>
     <!-- Gazebo sim -->
     <include file="$(find gazebo_ros)/launch/empty_world.launch">
         <arg name="gui" value="$(arg gui)"/>
diff --git a/launch/single_vehicle_spawn.launch b/launch/single_vehicle_spawn.launch
index 556fda1a3d2f7102993f35acd0a1649f5199ab07..9c2c3fe7b0531cff935a6b0020fe5108de0e2af7 100644
--- a/launch/single_vehicle_spawn.launch
+++ b/launch/single_vehicle_spawn.launch
@@ -15,11 +15,15 @@
     <arg name="ID" default="1"/>
     <arg name="rcS" default="$(find px4)/posix-configs/SITL/init/$(arg est)/$(arg vehicle)_$(arg ID)"/>
     <arg name="mavlink_udp_port" default="14560"/>
+    <!-- PX4 configs -->
+    <arg name="interactive" default="true"/>
     <!-- generate urdf vehicle model -->
     <arg name="cmd" default="$(find xacro)/xacro $(find px4)/Tools/sitl_gazebo/models/rotors_description/urdf/$(arg vehicle)_base.xacro rotors_description_dir:=$(find px4)/Tools/sitl_gazebo/models/rotors_description mavlink_udp_port:=$(arg mavlink_udp_port) --inorder"/>
     <param command="$(arg cmd)" name="rotors_description"/>
     <!-- PX4 SITL -->
-    <node name="sitl_$(arg ID)" pkg="px4" type="px4" output="screen" args="$(find px4) $(arg rcS)">
+    <arg unless="$(arg interactive)" name="px4_command_arg1" value=""/>
+    <arg     if="$(arg interactive)" name="px4_command_arg1" value="-d"/>
+    <node name="sitl_$(arg ID)" pkg="px4" type="px4" output="screen" args="$(find px4) $(arg rcS) $(arg px4_command_arg1)">
     </node>
     <!-- spawn vehicle -->
     <node name="$(arg vehicle)_$(arg ID)_spawn" output="screen" pkg="gazebo_ros" type="spawn_model" args="-urdf -param rotors_description -model $(arg vehicle)_$(arg ID) -package_to_model -x $(arg x) -y $(arg y) -z $(arg z) -R $(arg R) -P $(arg P) -Y $(arg Y)"/>
diff --git a/test/mavros_posix_test_mission.test b/test/mavros_posix_test_mission.test
index 74ed4903ded957906a763f7dc0ba94b1dac6c477..894ab660154f5491edbc19d58b56ee31a5185594 100644
--- a/test/mavros_posix_test_mission.test
+++ b/test/mavros_posix_test_mission.test
@@ -4,12 +4,14 @@
     <!-- Test a mission -->
     <arg name="est" default="ekf2"/>
     <arg name="gui" default="false"/>
+    <arg name="interactive" default="false"/>
     <arg name="vehicle" default="iris"/>
     <arg name="mission"/>
     <!-- MAVROS, PX4 SITL, Gazebo -->
     <include file="$(find px4)/launch/mavros_posix_sitl.launch">
         <arg name="est" value="$(arg est)"/>
         <arg name="gui" value="$(arg gui)"/>
+        <arg name="interactive" value="$(arg interactive)"/>
         <arg name="vehicle" value="$(arg vehicle)"/>
         <arg name="respawn_gazebo" value="true"/>
         <arg name="respawn_mavros" value="true"/>
diff --git a/test/mavros_posix_tests_iris_opt_flow.test b/test/mavros_posix_tests_iris_opt_flow.test
index 606ecf442d513dfb26366888e10bce6fd2ef8962..1a387e020f7b3acb915c50c0c9f10ecff585227c 100644
--- a/test/mavros_posix_tests_iris_opt_flow.test
+++ b/test/mavros_posix_tests_iris_opt_flow.test
@@ -4,10 +4,12 @@
     <!-- Test offboard local posistion and attitude control with optical flow iris -->
     <arg name="est" default="ekf2"/>
     <arg name="gui" default="false"/>
+    <arg name="interactive" default="false"/>
     <!-- MAVROS, PX4 SITL, Gazebo -->
     <include file="$(find px4)/launch/mavros_posix_sitl.launch">
         <arg name="est" value="$(arg est)"/>
         <arg name="gui" value="$(arg gui)"/>
+        <arg name="interactive" value="$(arg interactive)"/>
         <arg name="vehicle" value="iris_opt_flow"/>
         <arg name="respawn_gazebo" value="true"/>
         <arg name="respawn_mavros" value="true"/>
diff --git a/test/mavros_posix_tests_missions.test b/test/mavros_posix_tests_missions.test
index 7d4aa73313039cf0603cdb0b0b8e52a832a8d847..2aec66c6b83a66a55bec53f1bfe9a6e214857149 100644
--- a/test/mavros_posix_tests_missions.test
+++ b/test/mavros_posix_tests_missions.test
@@ -5,10 +5,12 @@
     <arg name="est" default="ekf2"/>
     <arg name="gui" default="false"/>
     <arg name="vehicle" default="standard_vtol"/>
+    <arg name="interactive" default="false"/>
     <!-- MAVROS, PX4 SITL, Gazebo -->
     <include file="$(find px4)/launch/mavros_posix_sitl.launch">
         <arg name="est" value="$(arg est)"/>
         <arg name="gui" value="$(arg gui)"/>
+        <arg name="interactive" value="$(arg interactive)"/>
         <arg name="vehicle" value="$(arg vehicle)"/>
         <arg name="respawn_gazebo" value="true"/>
         <arg name="respawn_mavros" value="true"/>
diff --git a/test/mavros_posix_tests_offboard_attctl.test b/test/mavros_posix_tests_offboard_attctl.test
index df6bd43441c94134026a1e7e4aaaa1d65a81418a..f7b053bf30ef17e82d204d0a9cc6989b9a2e0aa6 100644
--- a/test/mavros_posix_tests_offboard_attctl.test
+++ b/test/mavros_posix_tests_offboard_attctl.test
@@ -5,10 +5,12 @@
     <arg name="est" default="ekf2"/>
     <arg name="gui" default="false"/>
     <arg name="vehicle" default="iris"/>
+    <arg name="interactive" default="false"/>
     <!-- MAVROS, PX4 SITL, Gazebo -->
     <include file="$(find px4)/launch/mavros_posix_sitl.launch">
         <arg name="est" value="$(arg est)"/>
         <arg name="gui" value="$(arg gui)"/>
+        <arg name="interactive" value="$(arg interactive)"/>
         <arg name="vehicle" value="$(arg vehicle)"/>
         <arg name="respawn_gazebo" value="true"/>
         <arg name="respawn_mavros" value="true"/>
diff --git a/test/mavros_posix_tests_offboard_posctl.test b/test/mavros_posix_tests_offboard_posctl.test
index dea45da03accf479fd61a16444e09faea40f342b..ebdf6d047df0fd272aa2afd2f92ef6040c0235a9 100644
--- a/test/mavros_posix_tests_offboard_posctl.test
+++ b/test/mavros_posix_tests_offboard_posctl.test
@@ -5,10 +5,12 @@
     <arg name="est" default="ekf2"/>
     <arg name="gui" default="false"/>
     <arg name="vehicle" default="iris"/>
+    <arg name="interactive" default="false"/>
     <!-- MAVROS, PX4 SITL, Gazebo -->
     <include file="$(find px4)/launch/mavros_posix_sitl.launch">
         <arg name="est" value="$(arg est)"/>
         <arg name="gui" value="$(arg gui)"/>
+        <arg name="interactive" value="$(arg interactive)"/>
         <arg name="vehicle" value="$(arg vehicle)"/>
         <arg name="respawn_gazebo" value="true"/>
         <arg name="respawn_mavros" value="true"/>