diff options
author | Thomas Adam <thomas@xteddy.org> | 2017-04-20 12:01:14 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2017-04-20 12:01:14 +0100 |
commit | 48371216df07c588180b8e2246930a96e94de62b (patch) | |
tree | b7fe5d01adee8885d766616fcea5ff41d773ec01 /server.c | |
parent | e30f9dc1fae848d659295a9dfab0a5e0cf4e1a46 (diff) | |
parent | 21993105e53da0f5aae583b494c83f1cbbf48b1b (diff) |
Merge branch 'obsd-master'
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -133,7 +133,8 @@ server_create_socket(void) int server_start(struct event_base *base, int lockfd, char *lockfile) { - int pair[2]; + int pair[2]; + struct job *job; if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0) fatal("socketpair failed"); @@ -179,6 +180,12 @@ server_start(struct event_base *base, int lockfd, char *lockfile) server_add_accept(0); proc_loop(server_proc, server_loop); + + LIST_FOREACH(job, &all_jobs, entry) { + if (job->pid != -1) + kill(job->pid, SIGTERM); + } + status_prompt_save_history(); exit(0); } @@ -399,7 +406,7 @@ server_child_exited(pid_t pid, int status) } } - LIST_FOREACH(job, &all_jobs, lentry) { + LIST_FOREACH(job, &all_jobs, entry) { if (pid == job->pid) { job_died(job, status); /* might free job */ break; |