Send only SIGHUP in sandman

master
Curtis McEnroe 2018-12-04 15:38:22 -05:00
parent e01b03c963
commit b1427dd169
No known key found for this signature in database
GPG Key ID: CEA2F97ADCFCD77C
3 changed files with 8 additions and 22 deletions

View File

@ -120,6 +120,7 @@ noreturn void eventLoop(void) {
};
sigaction(SIGCHLD, &action, NULL);
sigaction(SIGINT, &action, NULL);
sigaction(SIGHUP, &action, NULL);
struct sigaction curses;
sigaction(SIGWINCH, &action, &curses);
@ -130,6 +131,7 @@ noreturn void eventLoop(void) {
for (;;) {
if (sig[SIGCHLD]) childWait();
if (sig[SIGHUP]) ircFmt("QUIT :zzz\r\n");
if (sig[SIGINT]) {
signal(SIGINT, SIG_DFL);
ircFmt("QUIT :Goodbye\r\n");
@ -139,7 +141,7 @@ noreturn void eventLoop(void) {
uiRead();
uiDraw();
}
sig[SIGCHLD] = sig[SIGINT] = sig[SIGWINCH] = 0;
sig[SIGCHLD] = sig[SIGHUP] = sig[SIGINT] = sig[SIGWINCH] = 0;
struct pollfd fds[3] = {
{ .events = POLLIN, .fd = irc },

View File

@ -16,14 +16,10 @@ is a utility for Darwin systems.
It runs the
.Ar command
as a child process
and sends it
.Dv SIGTSTP
and
.Dv SIGCONT
signals
when the system goes to sleep
and wakes from sleep,
respectively.
and sends it the
.Dv SIGHUP
signal
when the system goes to sleep.
.
.Sh EXIT STATUS
.Nm

View File

@ -59,19 +59,7 @@ int main(int argc, char *argv[]) {
queue: nil
usingBlock: ^(NSNotification *note) {
(void)note;
int error = kill(pid, SIGTSTP);
if (error) err(EX_UNAVAILABLE, "kill %d", pid);
}
];
[
[[NSWorkspace sharedWorkspace] notificationCenter]
addObserverForName: NSWorkspaceDidWakeNotification
object: nil
queue: nil
usingBlock: ^(NSNotification *note) {
(void)note;
int error = kill(pid, SIGCONT);
int error = kill(pid, SIGHUP);
if (error) err(EX_UNAVAILABLE, "kill %d", pid);
}
];