version 1.174, 2017/07/12 09:24:17 |
version 1.175, 2017/07/12 10:04:51 |
|
|
{ |
{ |
int pair[2]; |
int pair[2]; |
struct job *job; |
struct job *job; |
|
sigset_t set, oldset; |
|
|
if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0) |
if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0) |
fatal("socketpair failed"); |
fatal("socketpair failed"); |
|
|
|
sigfillset(&set); |
|
sigprocmask(SIG_BLOCK, &set, &oldset); |
switch (fork()) { |
switch (fork()) { |
case -1: |
case -1: |
fatal("fork failed"); |
fatal("fork failed"); |
case 0: |
case 0: |
break; |
break; |
default: |
default: |
|
sigprocmask(SIG_SETMASK, &oldset, NULL); |
close(pair[1]); |
close(pair[1]); |
return (pair[0]); |
return (pair[0]); |
} |
} |
close(pair[0]); |
close(pair[0]); |
|
|
if (daemon(1, 0) != 0) |
if (daemon(1, 0) != 0) |
fatal("daemon failed"); |
fatal("daemon failed"); |
proc_clear_signals(client); |
proc_clear_signals(client); |
|
|
fatalx("event_reinit failed"); |
fatalx("event_reinit failed"); |
server_proc = proc_start("server"); |
server_proc = proc_start("server"); |
proc_set_signals(server_proc, server_signal); |
proc_set_signals(server_proc, server_signal); |
|
sigprocmask(SIG_SETMASK, &oldset, NULL); |
|
|
if (log_get_level() > 1) |
if (log_get_level() > 1) |
tty_create_log(); |
tty_create_log(); |