use exec for correct signal handling