use POSIX for signal