Exec a Login Shell
While setting up the Droplet that's hosting this site, I had to switch from root to the rails user several times. In order to get gems and bundler to work properly, I needed a login shell, which you don't get automatically just using
su. The solution is to
exec bash -l after
What I didn't already know is exactly why that command does what it does. Turns out that
exec replaces the current process (my shell) instead of starting a new sub-process. So while just typing
bash -l will also give you the intended result, it's not as efficient.