mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Add a -D flag to ask tmux not to daemonize, useful both for running a debugger
(lldb does not have follow-fork-mode) and for running with a managed supervisor init system. GitHub issue 2190.
This commit is contained in:
9
proc.c
9
proc.c
@ -35,6 +35,7 @@ struct tmuxproc {
|
||||
|
||||
void (*signalcb)(int);
|
||||
|
||||
struct event ev_sigint;
|
||||
struct event ev_sighup;
|
||||
struct event ev_sigchld;
|
||||
struct event ev_sigcont;
|
||||
@ -219,10 +220,13 @@ proc_set_signals(struct tmuxproc *tp, void (*signalcb)(int))
|
||||
sa.sa_flags = SA_RESTART;
|
||||
sa.sa_handler = SIG_IGN;
|
||||
|
||||
sigaction(SIGINT, &sa, NULL);
|
||||
sigaction(SIGPIPE, &sa, NULL);
|
||||
sigaction(SIGTSTP, &sa, NULL);
|
||||
sigaction(SIGTTIN, &sa, NULL);
|
||||
sigaction(SIGTTOU, &sa, NULL);
|
||||
|
||||
signal_set(&tp->ev_sigint, SIGINT, proc_signal_cb, tp);
|
||||
signal_add(&tp->ev_sigint, NULL);
|
||||
signal_set(&tp->ev_sighup, SIGHUP, proc_signal_cb, tp);
|
||||
signal_add(&tp->ev_sighup, NULL);
|
||||
signal_set(&tp->ev_sigchld, SIGCHLD, proc_signal_cb, tp);
|
||||
@ -249,10 +253,10 @@ proc_clear_signals(struct tmuxproc *tp, int defaults)
|
||||
sa.sa_flags = SA_RESTART;
|
||||
sa.sa_handler = SIG_DFL;
|
||||
|
||||
sigaction(SIGINT, &sa, NULL);
|
||||
sigaction(SIGPIPE, &sa, NULL);
|
||||
sigaction(SIGTSTP, &sa, NULL);
|
||||
|
||||
signal_del(&tp->ev_sigint);
|
||||
signal_del(&tp->ev_sighup);
|
||||
signal_del(&tp->ev_sigchld);
|
||||
signal_del(&tp->ev_sigcont);
|
||||
@ -262,6 +266,7 @@ proc_clear_signals(struct tmuxproc *tp, int defaults)
|
||||
signal_del(&tp->ev_sigwinch);
|
||||
|
||||
if (defaults) {
|
||||
sigaction(SIGINT, &sa, NULL);
|
||||
sigaction(SIGHUP, &sa, NULL);
|
||||
sigaction(SIGCHLD, &sa, NULL);
|
||||
sigaction(SIGCONT, &sa, NULL);
|
||||
|
Reference in New Issue
Block a user