kill returns the same status whether a process doesn't exist or the current user doesn't have permission to kill, so the script returned a confusing error message in the latter case.
The use of call("echo 'string'") instead of print('string') or sys.stdout.write('string') is due to the latter two not reliably reporting back whether they were successful or not: print doesn't return anything (and actually can't be chained like this), and the return value of sys.stdout.write depends on the Python version (None on Python 2, number of bytes written on Python 3).