While working on parent task and roll-restarting all webservices I noticed become <tool> <command> not always works as intended, i.e. command gets executed and become returns.
Instead, the user is dropped into a shell prompt and upon exiting then the command is run. In other words, a shell is run interactively and upon exiting that shell then the command is run.
root@tools-bastion-14:~# become mp ls .-(~)---------------------------------------------------------------------------------------------------------------(tools.mp@tools-bastion-14)- `--> exit bin bootstrap_venv.sh error.log logs mp public_html replica.my.cnf service.manifest toolforge_jobs.yaml
I noticed this because the roll-restart stopped until I intervened and exited the shell. I have experienced this for mp and spbot. My expectation is that become can always run commands non-interactively, what do you think ?