mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Move signal code into proc.c.
This commit is contained in:
19
server.c
19
server.c
@ -136,7 +136,8 @@ server_create_socket(void)
|
||||
|
||||
/* Fork new server. */
|
||||
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];
|
||||
struct job *job;
|
||||
@ -144,13 +145,25 @@ server_start(struct event_base *base, int lockfd, char *lockfile)
|
||||
if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0)
|
||||
fatal("socketpair failed");
|
||||
|
||||
server_proc = proc_start("server", base, 1, server_signal);
|
||||
if (server_proc == NULL) {
|
||||
switch (fork()) {
|
||||
case -1:
|
||||
fatal("fork failed");
|
||||
case 0:
|
||||
break;
|
||||
default:
|
||||
close(pair[1]);
|
||||
return (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)
|
||||
tty_create_log();
|
||||
if (pledge("stdio rpath wpath cpath fattr unix getpw recvfd proc exec "
|
||||
|
Reference in New Issue
Block a user