split up shm init

we need randomness in parse_args if we pass -r
but we also need to handle -s, so post-setup the shm too if necessary