run in foreground, just exit on signal