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