version 1.173, 2017/07/09 22:33:09 |
version 1.174, 2017/07/12 09:24:17 |
|
|
|
|
/* Fork new server. */ |
/* Fork new server. */ |
int |
int |
server_start(struct event_base *base, int lockfd, char *lockfile) |
server_start(struct tmuxproc *client, struct event_base *base, int lockfd, |
|
char *lockfile) |
{ |
{ |
int pair[2]; |
int pair[2]; |
struct job *job; |
struct job *job; |
|
|
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"); |
|
|
server_proc = proc_start("server", base, 1, server_signal); |
switch (fork()) { |
if (server_proc == NULL) { |
case -1: |
|
fatal("fork failed"); |
|
case 0: |
|
break; |
|
default: |
close(pair[1]); |
close(pair[1]); |
return (pair[0]); |
return (pair[0]); |
} |
} |
close(pair[0]); |
close(pair[0]); |
|
|
|
if (daemon(1, 0) != 0) |
|
fatal("daemon failed"); |
|
proc_clear_signals(client); |
|
if (event_reinit(base) != 0) |
|
fatalx("event_reinit failed"); |
|
server_proc = proc_start("server"); |
|
proc_set_signals(server_proc, server_signal); |
|
|
if (log_get_level() > 1) |
if (log_get_level() > 1) |
tty_create_log(); |
tty_create_log(); |