Try using subprocess but without the os.call option.
You can use this method to run Abaqus in the background:
import subprocess
path = location of file in any directory
abaqusCall = 'abaqus job=file_name cpus=2'
runCommand = 'cmd.exe /c ' + abaqusCall
process = subprocess.Popen(runCommand, cwd=path)
The problem with Abaqus is that it takes a long time to run the analysis, so if you try to run your "python_name.py" file in order to get results, the program might get errors because the *.odb file either has not been created yet, or does not contain the data that need extraction.
You can use the command:
process.wait()
to tell Python to wait for Abaqus to finish the analysis before executing your "python_name.py", but this will hang your python command (or GUI) until Abaqus is done, which will take a long time.
One method I use is to read the *.sta file from Abaqus which has the solution time and progress. So, you can write a sequence to read the file every 5 seconds for example, and monitor when the job ends before executing your result extraction file.
Another trick for data extraction is that as long you do not use (import) classes from the CAE module, you can run your Python script using this command:
#get results and write them to myresults.txt
os.system('abaqus python python_name.py')