Subprocess¶
Subprocess examples¶
Example of a subprocess protocol using to get the output of a subprocess and to wait for the subprocess exit. The subprocess is created by the uvio.subprocess.Popen method:
import uvio
import sys
@uvio.sync(timout=10)
async def get_date():
code = 'import datetime; print(datetime.datetime.now())'
# Create the subprocess controlled by the protocol DateProtocol,
# redirect the standard output into a pipe
process = await uvio.process.Popen(
[sys.executable, '-c', code],
stdin=None, stderr=None, stdout=uvio.process.PIPE
)
# Pipe output into byte stream
line = await process.stdout.readline()
# Wait for the subprocess exit using the process_exited() method
# of the protocol
print('Exit Status', await process.returncode)
# Read the output which was collected by the pipe_data_received()
# method of the protocol
data = output.getvalue()
return data.decode('ascii').rstrip()
print("Current date: %s" % get_date())