I have a python script which takes an input, formats it into a command which calls another script on the server, and then executes using subprocess:
import s
&
is a shell feature. If you want it to work with subprocess
, you must specify shell=True
like:
subprocess.call(command, shell=True)
This will allow you to run command in background.
Notes:
Since shell=True
, the above uses command
, not command_list
.
Using shell=True
enables all of the shell's features. Don't do this unless command
including thingy
comes from sources that you trust.
This alternative still lets you run the command in background but is safe because it uses the default shell=False
:
p = subprocess.Popen(command_list)
After this statement is executed, the command will run in background. If you want to be sure that it has completed, run p.wait()
.
If you want to execute it in Background I recommend you to use nohup
output that would normally go to the terminal goes to a file called nohup.out
import subprocess
subprocess.Popen("nohup usr/local/bin/otherscript.pl {0} >/dev/null 2>&1 &", shell=True)
>/dev/null 2>&1 &
will not create output and will redirect to background