aboutsummaryrefslogtreecommitdiff
path: root/tmux.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2020-05-10 16:52:46 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2020-05-10 16:52:46 +0100
commitd01e7aac89fefff31e668ac2d668c84c345b9e67 (patch)
tree5d773b1d95cb96f9c3b70e1d34c355f283a0a136 /tmux.c
parent5fa377d9273ee609784acc538a5defa09feb3095 (diff)
downloadrtmux-d01e7aac89fefff31e668ac2d668c84c345b9e67.tar.gz
rtmux-d01e7aac89fefff31e668ac2d668c84c345b9e67.tar.bz2
rtmux-d01e7aac89fefff31e668ac2d668c84c345b9e67.zip
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.
Diffstat (limited to 'tmux.c')
-rw-r--r--tmux.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/tmux.c b/tmux.c
index 48b3b8b9..b600702c 100644
--- a/tmux.c
+++ b/tmux.c
@@ -54,7 +54,7 @@ static __dead void
usage(void)
{
fprintf(stderr,
- "usage: %s [-2CluvV] [-c shell-command] [-f file] [-L socket-name]\n"
+ "usage: %s [-2CDluvV] [-c shell-command] [-f file] [-L socket-name]\n"
" [-S socket-path] [-T features] [command [flags]]\n",
getprogname());
exit(1);
@@ -327,7 +327,7 @@ main(int argc, char **argv)
if (**argv == '-')
flags = CLIENT_LOGIN;
- while ((opt = getopt(argc, argv, "2c:Cdf:lL:qS:T:uUvV")) != -1) {
+ while ((opt = getopt(argc, argv, "2c:CDdf:lL:qS:T:uUvV")) != -1) {
switch (opt) {
case '2':
tty_add_features(&feat, "256", ":,");
@@ -335,6 +335,9 @@ main(int argc, char **argv)
case 'c':
shell_command = optarg;
break;
+ case 'D':
+ flags |= CLIENT_NOFORK;
+ break;
case 'C':
if (flags & CLIENT_CONTROL)
flags |= CLIENT_CONTROLCONTROL;
@@ -378,6 +381,8 @@ main(int argc, char **argv)
if (shell_command != NULL && argc != 0)
usage();
+ if ((flags & CLIENT_NOFORK) && argc != 0)
+ usage();
if ((ptm_fd = getptmfd()) == -1)
err(1, "getptmfd");