summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2018-02-22 10:54:51 +0000
committernicm <nicm>2018-02-22 10:54:51 +0000
commit623f4b12d3af7c6908c6abab1e95589c59f554ef (patch)
tree895220aa98daf4bb76505869239658186caac1e3
parentab6f0bb3485f6626bad6f585e4d17059fe4f7152 (diff)
Add exit-empty option to exit server if no sessions (defaults to on).
-rw-r--r--options-table.c6
-rw-r--r--server.c3
-rw-r--r--tmux.15
3 files changed, 14 insertions, 0 deletions
diff --git a/options-table.c b/options-table.c
index c3363e48..20ac5d6f 100644
--- a/options-table.c
+++ b/options-table.c
@@ -97,6 +97,12 @@ const struct options_table_entry options_table[] = {
.default_num = 500
},
+ { .name = "exit-empty",
+ .type = OPTIONS_TABLE_FLAG,
+ .scope = OPTIONS_TABLE_SERVER,
+ .default_num = 1
+ },
+
{ .name = "exit-unattached",
.type = OPTIONS_TABLE_FLAG,
.scope = OPTIONS_TABLE_SERVER,
diff --git a/server.c b/server.c
index 77ee9c36..b1d3312a 100644
--- a/server.c
+++ b/server.c
@@ -255,6 +255,9 @@ server_loop(void)
server_client_loop();
+ if (!options_get_number(global_options, "exit-empty") && !server_exit)
+ return (0);
+
if (!options_get_number(global_options, "exit-unattached")) {
if (!RB_EMPTY(&sessions))
return (0);
diff --git a/tmux.1 b/tmux.1
index 7eb228cb..428c1016 100644
--- a/tmux.1
+++ b/tmux.1
@@ -2503,6 +2503,11 @@ Set the time in milliseconds for which
waits after an escape is input to determine if it is part of a function or meta
key sequences.
The default is 500 milliseconds.
+.It Xo Ic exit-empty
+.Op Ic on | off
+.Xc
+If enabled (the default), the server will exit when there are no active
+sessions.
.It Xo Ic exit-unattached
.Op Ic on | off
.Xc