use sig handler instead d if sigaction