UsageΒΆ

Philosophy: The reason for creating soldier is to provide a user-friendly and pythonic API on top the subprocess module in order to manage system processes in python.

After successfully installing soldier, you will now be able to communicate with system processes without making your eyes bleed.

Get output of pwd command

>> import soldier
>> current_path = soldier.run('pwd')
>> print(current_path.output)
/home/pythonista
# Status Code
>> print(current_path.exit_code)
0

Run a process in background, and later terminate it

>> firefox_proc = soldier.run('firefox', background=True)
# Get pid of firefox process
>> print(firefox_proc.pid)
18673
# Kill firefox
>> firefox_proc.kill()
>> firefox_proc.is_alive()
>> False

Run a root command

>> soldier.run('service nginx start', sudo='my_password')

Run a command with timeout

>> soldier.run('./infinite_loop_script.py', timeout=10, kill_on_timeout=True)

# Handle timeouts
>> try
       soldier.run('./my_script.py', timeout=5, kill_on_timeout=False)
   except soldier.ProcessTimeoutError:
       print("Your script timed out")
Your script timed out