I am trying to run some commands on some machine which I am connecting through the rsh command (can't use ssh for my case).
Through subprocess.check_call function, I am executing the command and am expecting check_call to exit with exception when exit status of my "cd /libs/ " command indicates failure.
Below is the code I am trying out.
with open('logs.txt','w') as outstream:
subprocess.check_call("rsh bldr 'cd /libs/' ", shell=True,stdout=outstream)
But here, rsh only returns its exit status and not the command it's executing.
Because of which even in command failure case no error from check_call function, as it is getting rsh exit status which will be 0 always.
So, how to get the exit status of the command here?
Also, how can I make check_call fail based on my command exit status?
Note: I am trying to change directory to /libs which doesn't exist. I am hoping for check_call to fail here and stop execution of script.
Capture stderr as well which can be used for checking if command has failed on remote machine.