conforms to the :class:`asyncio.SubprocessTransport` base class and
*protocol* is an object instantiated by the *protocol_factory*.
+ If the transport is closed or is garbage collected, the child process
+ is killed if it is still running.
+
.. method:: loop.subprocess_shell(protocol_factory, cmd, *, \
stdin=subprocess.PIPE, stdout=subprocess.PIPE, \
stderr=subprocess.PIPE, **kwargs)
conforms to the :class:`SubprocessTransport` base class and
*protocol* is an object instantiated by the *protocol_factory*.
+ If the transport is closed or is garbage collected, the child process
+ is killed if it is still running.
+
.. note::
It is the application's responsibility to ensure that all whitespace
and special characters are quoted appropriately to avoid `shell injection
See the documentation of :meth:`loop.subprocess_exec` for other
parameters.
+ If the process object is garbage collected while the process is still
+ running, the child process will be killed.
+
.. versionchanged:: 3.10
Removed the *loop* parameter.
See the documentation of :meth:`loop.subprocess_shell` for other
parameters.
+ If the process object is garbage collected while the process is still
+ running, the child process will be killed.
+
.. important::
It is the application's responsibility to ensure that all whitespace and