Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

tab terminates the daemon when reconnecting to active sessions #313

Closed
liketechnik opened this issue Jan 13, 2021 · 8 comments 路 Fixed by #319
Closed

tab terminates the daemon when reconnecting to active sessions #313

liketechnik opened this issue Jan 13, 2021 · 8 comments 路 Fixed by #319
Assignees
Labels
bug Something isn't working
Milestone

Comments

@liketechnik
Copy link

Hi,

first of all, tab is a really great piece of software, I favored using it instead of tmux from the first moment I found (and used) it 馃憤

Nevertheless, I have a really nasty problem with tab: Not always, but in many cases tab forcefully terminates the already running daemon, with sometimes still running applications in it, before connecting me to a session or presenting the fuzzy finder. I didn't find anything in the logs so far, although I noticed, when following the log file with tail -f, that it's truncated on every restart of the daemon.

I'm running version 0.5.5 installed with cargo install tab. I'm happy to provide any information needed to find the root issue of this problem.

@austinjones austinjones added the bug Something isn't working label Jan 13, 2021
@austinjones austinjones self-assigned this Jan 13, 2021
@austinjones
Copy link
Owner

austinjones commented Jan 13, 2021

Hi @liketechnik,
Glad to hear you like it! I'll take a look at this - it needs to get fixed!

More information would be helpful. Here are a few things I can think of:

  • The daemon connection (and the decision to start a new daemon) happens when the tab command-line client starts. If you can reproduce this regularly, debug logs from the client would be really helpful. The list command doesn't clear the screen, so it's useful for getting logs about startup/shutdown:
    tab --log debug --list

  • Does the truncation of the daemon log happen exactly when you invoke the tab command (or autocomplete a tab name)? That would suggest that the command-line client somehow thinks that the daemon isn't running, and it's launching a new one.

  • Could you provide information about your environment (OS, terminal emulator, shell)? That might help me figure out how to reproduce this.

A normal daemon startup looks like this in the command-line client logs:

23:43:08.354 CMD [INFO] tab-command runtime starting
23:43:08.354 CMD [DEBUG] (1) tab_api::launch: launching `tab-daemon` at /Users/austinjones/.cargo/bin/tab
23:43:08.354 CMD [DEBUG] (1) tab_api::env: forwarding env TAB_BIN as /Users/austinjones/.cargo/bin/tab
23:43:08.412 CMD [DEBUG] (1) tab_command: daemon is ready

If the client connects to a running daemon, it looks like this:

23:46:38.528 CMD [INFO] tab-command runtime starting
23:46:38.531 CMD [DEBUG] (1) tab_command: daemon is ready
23:46:38.533 CMD [DEBUG] (1) tungstenite::handshake::client: Client handshake done.

@liketechnik
Copy link
Author

I now found a way to reliably force the behaviour to occur:

  1. Stop any running tab instance with tab -W. There seem to be circumstances under which tab will always reuse the existing daemon.
  2. Start a new instance in my terminal (see below for details)
  3. Immediately disconnect from it, by either:
    • press Escape in the fuzzy finder
    • select any tab and disconnect with the keybind
    • select any tab and stop the shell session with exit
    • select any tab and disconnect with tab -z
  4. Run tab --log debug --list.
  5. See that tab has not reused the daemon in the log output.

Doing this, I obtained the following log:

00:05:24.511 CMD [INFO] tab-command runtime starting
00:05:24.512 CMD [DEBUG] (1) tab_api::launch: launching `tab-daemon` at /home/florian/.cargo/bin/tab
00:05:24.512 CMD [DEBUG] (1) tab_api::env: forwarding env TAB_BIN as /home/florian/.cargo/bin/tab
00:05:24.565 CMD [DEBUG] (1) tab_command: daemon is ready
00:05:24.566 CMD [DEBUG] (1) tungstenite::handshake::client: Client handshake done.
00:05:24.566 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketResource stored in MainBus
00:05:24.566 CMD [INFO] Launching MainService
00:05:24.566 CMD [DEBUG] (1) lifeline::dyn_bus::storage: MainRecv linked in MainBus
00:05:24.567 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in MainBus
00:05:24.567 CMD [DEBUG] (1) lifeline::dyn_bus::storage: MainShutdown linked in MainBus
00:05:24.567 CMD [DEBUG] (1) lifeline::spawn: START MainAutocompleteTabsService/run
00:05:24.567 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<ActiveTabsState> linked in MainBus
00:05:24.567 CMD [DEBUG] (1) lifeline::spawn: START MainAutocompleteCloseTabsService/run
00:05:24.567 CMD [DEBUG] (1) lifeline::spawn: START MainCheckWorkspaceService/run
00:05:24.568 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Request linked in MainBus
00:05:24.568 CMD [DEBUG] (1) lifeline::spawn: START MainCloseTabsService/run
00:05:24.568 CMD [DEBUG] (1) lifeline::spawn: START MainDisconnectTabsService/run
00:05:24.568 CMD [DEBUG] (1) lifeline::spawn: START MainGlobalShutdownService/run
00:05:24.568 CMD [DEBUG] (1) lifeline::spawn: START MainListTabsService/run
00:05:24.568 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalRecv linked in MainBus
00:05:24.568 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabRecv linked in MainBus
00:05:24.569 CMD [DEBUG] (1) lifeline::spawn: START MainSelectInteractiveService/run
00:05:24.569 CMD [DEBUG] (1) lifeline::spawn: START MainSelectTabService/run
00:05:24.569 CMD [DEBUG] (1) lifeline::dyn_bus::storage: SelectOrRetaskTab linked in TabBus
00:05:24.569 CMD [DEBUG] (1) lifeline::dyn_bus::storage: DeselectTab linked in TabBus
00:05:24.569 CMD [DEBUG] (1) lifeline::dyn_bus::storage: ScanWorkspace linked in TabBus
00:05:24.569 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_create
00:05:24.570 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Request linked in TabBus
00:05:24.570 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_request
00:05:24.570 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabShutdown linked in TabBus
00:05:24.570 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_shutdown
00:05:24.570 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<ActiveTabsState> linked in TabBus
00:05:24.570 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_tabs_state
00:05:24.571 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in TabBus
00:05:24.571 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_workspace_state
00:05:24.571 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabState linked in TabBus
00:05:24.571 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_request
00:05:24.571 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Response linked in MainBus
00:05:24.571 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabsRecv linked in TabBus
00:05:24.572 CMD [DEBUG] (1) lifeline::dyn_bus::storage: SelectTab linked in TabBus
00:05:24.572 CMD [DEBUG] (1) lifeline::spawn: START TabBus/rx_response
00:05:24.572 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabState linked in MainBus
00:05:24.572 CMD [DEBUG] (1) lifeline::spawn: START TabBus/tx_selected
00:05:24.572 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketResource stored in WebsocketConnectionBus
00:05:24.572 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketSend linked in WebsocketConnectionBus
00:05:24.573 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketRecv linked in WebsocketConnectionBus
00:05:24.573 CMD [DEBUG] (1) lifeline::spawn: START WebsocketService/run
00:05:24.573 CMD [DEBUG] (1) lifeline::spawn: START WebsocketConnectionBus/forward_send
00:05:24.573 CMD [DEBUG] (1) lifeline::spawn: START WebsocketConnectionBus/forward_recv
00:05:24.573 CMD [DEBUG] (1) lifeline::dyn_bus::storage: CreateTabRequest linked in TabBus
00:05:24.574 CMD [DEBUG] (1) lifeline::spawn: START SelectTabService/run
00:05:24.574 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/select
00:05:24.574 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/select_named
00:05:24.574 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabMetadataState linked in TabBus
00:05:24.574 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/tab_metadata
00:05:24.575 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/deselect
00:05:24.575 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/publish
00:05:24.575 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/websocket
00:05:24.575 CMD [DEBUG] (1) lifeline::spawn: START WorkspaceService/scan
00:05:24.575 CMD [INFO] Scanning workspace
00:05:24.575 CMD [DEBUG] (1) lifeline::spawn: START CreateTabService/request_tab
00:05:24.575 CMD [DEBUG] (1) lifeline::spawn: START ActiveTabsService/run
00:05:24.575 CMD [INFO] Init({})
00:05:24.575 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalMode linked in TerminalBus
00:05:24.575 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/recv
00:05:24.575 CMD [INFO] Loading workspace: /home/florian
00:05:24.576 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalSend linked in TerminalBus
00:05:24.576 CMD [INFO] Scanning workspace
00:05:24.576 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/send
00:05:24.576 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalShutdown linked in TerminalBus
00:05:24.576 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/forward_shutdown
00:05:24.576 CMD [INFO] Loading workspace: /home/florian
00:05:24.576 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in TerminalBus
00:05:24.576 CMD [INFO] Scanning workspace
00:05:24.576 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/recv
00:05:24.577 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalOutput linked in TerminalBus
00:05:24.577 CMD [INFO] Loading workspace: /home/florian
00:05:24.577 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/main_recv
00:05:24.578 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalInput linked in TerminalBus
00:05:24.578 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/main_recv
00:05:24.578 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalSizeState linked in TerminalBus
00:05:24.578 CMD [DEBUG] (1) lifeline::spawn: START TerminalEventService/run
00:05:24.578 CMD [DEBUG] (1) lifeline::spawn: START TerminalService/dispatch_mode
00:05:24.578 CMD [DEBUG] (1) tab_command: Main spawn complete
00:05:24.578 CMD [DEBUG] (1) tab_command: Parsing CLI arguments...
00:05:24.579 CMD [INFO] CLI Match: ListTabs
00:05:24.579 CMD [DEBUG] (12) tab_command::service::main::list_tabs: echo tabs: [WorkspaceTab { name: "docker-images/", doc: Some("various repositories for docker containers"), directory: "/home/florian/Documents/programming/docker-images/", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-c/", doc: Some("Docker container f眉r Abgaben in SysProg 2020/21"), directory: "/home/florian/Documents/programming/docker-images/fh-c-dev", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-latex/", doc: Some("Docker container for building latex documents"), directory: "/home/florian/Documents/programming/docker-images/fh-latex", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-umlet/", doc: Some("Docker container for converting umlet diagrams into images"), directory: "/home/florian/Documents/programming/docker-images/fh-umlet", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/", doc: Some("various configuration files"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/edit/", doc: Some("nvim"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/test/", doc: Some("test if stuff is working"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/", doc: None, directory: "/home/florian/Documents/fh", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/", doc: Some("WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/", doc: Some("Datenbanken I WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/", doc: Some("Semester-Projekt"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/docker/", doc: Some("build and execute"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/frontend/", doc: Some("cargo check & co. for the frontend code"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt/frontend", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/", doc: Some("Projektmanagement WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/", doc: Some("Hausarbeit als Klausur-Ersatz"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/latex/", doc: Some("Build the pdf document"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/", doc: Some("Software Engineering WS3"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/", doc: Some("Implementierung der Klausur-Abgabe"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/docker/", doc: Some("build and execute"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/", doc: Some("Softwarespezifikation der Klausur-Abgabe"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/latex/", doc: Some("build the pdf document"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/", doc: Some("Systemprogrammierung WS 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/", doc: Some("Gemeinsames Abgaben Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/ssh/", doc: Some("ssh session for swlab raspi"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/", doc: Some("implementierungen im \'vorgaben\'-Ordner"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/compile/", doc: Some("build and run"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/unterlagen/", doc: Some("Unterlagen Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/sp_w20_unterlagen", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/", doc: Some("Verteilte Systeme (...) WS 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/", doc: Some("Gemeinsames Abgaben Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/compile/", doc: Some("Bauen (und ausf眉hren) von kleinen Aufgaben"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/latex/", doc: Some("build the pdf"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/test/", doc: Some("Testen von Implementierungen"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "florian/", doc: Some("global workspace"), directory: "/home/florian", shell: Some("bash"), env: None }, WorkspaceTab { name: "home-edit/", doc: Some("global nvim"), directory: "/home/florian", shell: Some("bash"), env: None }, WorkspaceTab { name: "home/", doc: Some("~"), directory: "/home/florian", shell: Some("bash"), env: None }]
Available tabs:
00:05:24.583 CMD    docker-images/                         (various repositories for docker containers)
     docker-images/fh-c/                    (Docker container f眉r Abgaben in SysProg 2020/21)
[    docker-images/fh-latex/                (Docker container for building latex documents)
DEBUG]     docker-images/fh-umlet/                (Docker container for converting umlet diagrams into images)                                                                                                                              
    dotfiles/                              (various configuration files)
(11    dotfiles/edit/                         (nvim)
) lifeline::channel::lifeline::receiver    dotfiles/test/                         (test if stuff is working)
:     fh/
RECV: ListTabs    fh/WS3/                                (WS3 2020/21)

    fh/WS3/DB/                             (Datenbanken I WS3 2020/21)
    fh/WS3/DB/projekt/                     (Semester-Projekt)
    fh/WS3/DB/projekt/docker/              (build and execute)
    fh/WS3/DB/projekt/edit/                (nvim)
    fh/WS3/DB/projekt/frontend/            (cargo check & co. for the frontend code)
    fh/WS3/PM/                             (Projektmanagement WS3 2020/21)
    fh/WS3/PM/Hausarbeit/                  (Hausarbeit als Klausur-Ersatz)
    fh/WS3/PM/Hausarbeit/edit/             (nvim)
    fh/WS3/PM/Hausarbeit/latex/            (Build the pdf document)
    fh/WS3/SE/                             (Software Engineering WS3)
    fh/WS3/SE/klausur/                     (Implementierung der Klausur-Abgabe)
    fh/WS3/SE/klausur/docker/              (build and execute)
    fh/WS3/SE/klausur/edit/                (nvim)
    fh/WS3/SE/klausur_doku/                (Softwarespezifikation der Klausur-Abgabe)
    fh/WS3/SE/klausur_doku/edit/           (nvim)
    fh/WS3/SE/klausur_doku/latex/          (build the pdf document)
    fh/WS3/SP/                             (Systemprogrammierung WS 2020/21)
    fh/WS3/SP/abgaben/                     (Gemeinsames Abgaben Repo)
    fh/WS3/SP/abgaben/edit/                (nvim)
    fh/WS3/SP/abgaben/ssh/                 (ssh session for swlab raspi)
    fh/WS3/SP/abgaben/vorgaben/            (implementierungen im 'vorgaben'-Ordner)
    fh/WS3/SP/abgaben/vorgaben/compile/    (build and run)
    fh/WS3/SP/abgaben/vorgaben/edit/       (nvim)
    fh/WS3/SP/unterlagen/                  (Unterlagen Repo)
    fh/WS3/VSys/                           (Verteilte Systeme (...) WS 2020/21)
    fh/WS3/VSys/abgaben/                   (Gemeinsames Abgaben Repo)
    fh/WS3/VSys/abgaben/compile/           (Bauen (und ausf眉hren) von kleinen Aufgaben)
    fh/WS3/VSys/abgaben/edit/              (nvim)
    fh/WS3/VSys/abgaben/latex/             (build the pdf)
    fh/WS3/VSys/abgaben/test/              (Testen von Implementierungen)
    florian/                               (global workspace)
    home-edit/                             (global nvim)
    home/                                  (~)
00:05:24.584 CMD [DEBUG] (12) lifeline::service: OK MainListTabsService/run
00:05:24.584 CMD [DEBUG] (12) lifeline::spawn: END MainListTabsService/run ()
00:05:24.584 CMD [DEBUG] (1) tab_command::service::terminal: raw mode disabled
00:05:24.584 CMD [DEBUG] (1) tab_command: tab-command shutdown.
00:05:24.584 CMD [INFO] tab-command runtime stopped
00:05:24.584 CMD [INFO] tab-command runtime stopped

In comparsion, a normal startup, e. g. with no previously tab daemon running, yields the following log for tab --log debug --list:

00:31:50.273 CMD [INFO] tab-command runtime starting
00:31:50.274 CMD [DEBUG] (1) tab_api::launch: launching `tab-daemon` at /home/florian/.cargo/bin/tab
00:31:50.274 CMD [DEBUG] (1) tab_api::env: forwarding env TAB_BIN as /home/florian/.cargo/bin/tab
00:31:50.328 CMD [DEBUG] (1) tab_command: daemon is ready
00:31:50.328 CMD [DEBUG] (1) tungstenite::handshake::client: Client handshake done.
00:31:50.329 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketResource stored in MainBus
00:31:50.329 CMD [INFO] Launching MainService
00:31:50.329 CMD [DEBUG] (1) lifeline::dyn_bus::storage: MainRecv linked in MainBus
00:31:50.329 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in MainBus
00:31:50.329 CMD [DEBUG] (1) lifeline::dyn_bus::storage: MainShutdown linked in MainBus
00:31:50.330 CMD [DEBUG] (1) lifeline::spawn: START MainAutocompleteTabsService/run
00:31:50.330 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<ActiveTabsState> linked in MainBus
00:31:50.330 CMD [DEBUG] (1) lifeline::spawn: START MainAutocompleteCloseTabsService/run
00:31:50.330 CMD [DEBUG] (1) lifeline::spawn: START MainCheckWorkspaceService/run
00:31:50.330 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Request linked in MainBus
00:31:50.330 CMD [DEBUG] (1) lifeline::spawn: START MainCloseTabsService/run
00:31:50.330 CMD [DEBUG] (1) lifeline::spawn: START MainDisconnectTabsService/run
00:31:50.330 CMD [DEBUG] (1) lifeline::spawn: START MainGlobalShutdownService/run
00:31:50.331 CMD [DEBUG] (1) lifeline::spawn: START MainListTabsService/run
00:31:50.331 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalRecv linked in MainBus
00:31:50.331 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabRecv linked in MainBus
00:31:50.331 CMD [DEBUG] (1) lifeline::spawn: START MainSelectInteractiveService/run
00:31:50.331 CMD [DEBUG] (1) lifeline::spawn: START MainSelectTabService/run
00:31:50.331 CMD [DEBUG] (1) lifeline::dyn_bus::storage: SelectOrRetaskTab linked in TabBus
00:31:50.331 CMD [DEBUG] (1) lifeline::dyn_bus::storage: DeselectTab linked in TabBus
00:31:50.332 CMD [DEBUG] (1) lifeline::dyn_bus::storage: ScanWorkspace linked in TabBus
00:31:50.332 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_create
00:31:50.332 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Request linked in TabBus
00:31:50.332 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_request
00:31:50.332 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabShutdown linked in TabBus
00:31:50.332 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_shutdown
00:31:50.332 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<ActiveTabsState> linked in TabBus
00:31:50.333 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_tabs_state
00:31:50.333 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in TabBus
00:31:50.333 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_workspace_state
00:31:50.333 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabState linked in TabBus
00:31:50.333 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_request
00:31:50.333 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Response linked in MainBus
00:31:50.334 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabsRecv linked in TabBus
00:31:50.334 CMD [DEBUG] (1) lifeline::dyn_bus::storage: SelectTab linked in TabBus
00:31:50.334 CMD [DEBUG] (1) lifeline::spawn: START TabBus/rx_response
00:31:50.334 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabState linked in MainBus
00:31:50.334 CMD [DEBUG] (1) lifeline::spawn: START TabBus/tx_selected
00:31:50.335 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketResource stored in WebsocketConnectionBus
00:31:50.335 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketSend linked in WebsocketConnectionBus
00:31:50.335 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketRecv linked in WebsocketConnectionBus
00:31:50.335 CMD [DEBUG] (1) lifeline::spawn: START WebsocketService/run
00:31:50.335 CMD [DEBUG] (1) lifeline::spawn: START WebsocketConnectionBus/forward_send
00:31:50.335 CMD [DEBUG] (1) lifeline::spawn: START WebsocketConnectionBus/forward_recv
00:31:50.335 CMD [DEBUG] (1) lifeline::dyn_bus::storage: CreateTabRequest linked in TabBus
00:31:50.336 CMD [DEBUG] (1) lifeline::spawn: START SelectTabService/run
00:31:50.336 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/select
00:31:50.336 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/select_named
00:31:50.336 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabMetadataState linked in TabBus
00:31:50.336 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/tab_metadata
00:31:50.336 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/deselect
00:31:50.336 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/publish
00:31:50.337 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/websocket
00:31:50.337 CMD [DEBUG] (1) lifeline::spawn: START WorkspaceService/scan
00:31:50.337 CMD [INFO] Scanning workspace
00:31:50.337 CMD [DEBUG] (1) lifeline::spawn: START CreateTabService/request_tab
00:31:50.337 CMD [DEBUG] (1) lifeline::spawn: START ActiveTabsService/run
00:31:50.337 CMD [INFO] Init({})
00:31:50.337 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalMode linked in TerminalBus
00:31:50.337 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/recv
00:31:50.337 CMD [INFO] Loading workspace: /home/florian
00:31:50.337 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalSend linked in TerminalBus
00:31:50.338 CMD [INFO] Scanning workspace
00:31:50.338 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/send
00:31:50.338 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalShutdown linked in TerminalBus
00:31:50.338 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/forward_shutdown
00:31:50.338 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in TerminalBus
00:31:50.338 CMD [INFO] Loading workspace: /home/florian
00:31:50.338 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/recv
00:31:50.338 CMD [INFO] Scanning workspace
00:31:50.338 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalOutput linked in TerminalBus
00:31:50.339 CMD [INFO] Loading workspace: /home/florian
00:31:50.339 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/main_recv
00:31:50.339 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalInput linked in TerminalBus
00:31:50.339 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/main_recv
00:31:50.339 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalSizeState linked in TerminalBus
00:31:50.340 CMD [DEBUG] (1) lifeline::spawn: START TerminalEventService/run
00:31:50.340 CMD [DEBUG] (1) lifeline::spawn: START TerminalService/dispatch_mode
00:31:50.340 CMD [DEBUG] (1) tab_command: Main spawn complete
00:31:50.340 CMD [DEBUG] (1) tab_command: Parsing CLI arguments...
00:31:50.340 CMD [INFO] CLI Match: ListTabs
00:31:50.340 CMD [DEBUG] (10) lifeline::channel::lifeline::receiver: RECV: ListTabs
00:31:50.340 CMD [DEBUG] (13) tab_command::service::main::list_tabs: echo tabs: [WorkspaceTab { name: "docker-images/", doc: Some("various repositories for docker containers"), directory: "/home/florian/Documents/programming/docker-images/", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-c/", doc: Some("Docker container f眉r Abgaben in SysProg 2020/21"), directory: "/home/florian/Documents/programming/docker-images/fh-c-dev", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-latex/", doc: Some("Docker container for building latex documents"), directory: "/home/florian/Documents/programming/docker-images/fh-latex", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-umlet/", doc: Some("Docker container for converting umlet diagrams into images"), directory: "/home/florian/Documents/programming/docker-images/fh-umlet", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/", doc: Some("various configuration files"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/edit/", doc: Some("nvim"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/test/", doc: Some("test if stuff is working"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/", doc: None, directory: "/home/florian/Documents/fh", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/", doc: Some("WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/", doc: Some("Datenbanken I WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/", doc: Some("Semester-Projekt"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/docker/", doc: Some("build and execute"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/frontend/", doc: Some("cargo check & co. for the frontend code"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt/frontend", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/", doc: Some("Projektmanagement WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/", doc: Some("Hausarbeit als Klausur-Ersatz"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/latex/", doc: Some("Build the pdf document"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/", doc: Some("Software Engineering WS3"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/", doc: Some("Implementierung der Klausur-Abgabe"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/docker/", doc: Some("build and execute"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/", doc: Some("Softwarespezifikation der Klausur-Abgabe"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/latex/", doc: Some("build the pdf document"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/", doc: Some("Systemprogrammierung WS 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/", doc: Some("Gemeinsames Abgaben Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/ssh/", doc: Some("ssh session for swlab raspi"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/", doc: Some("implementierungen im \'vorgaben\'-Ordner"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/compile/", doc: Some("build and run"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/unterlagen/", doc: Some("Unterlagen Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/sp_w20_unterlagen", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/", doc: Some("Verteilte Systeme (...) WS 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/", doc: Some("Gemeinsames Abgaben Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/compile/", doc: Some("Bauen (und ausf眉hren) von kleinen Aufgaben"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/latex/", doc: Some("build the pdf"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/test/", doc: Some("Testen von Implementierungen"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "florian/", doc: Some("global workspace"), directory: "/home/florian", shell: Some("bash"), env: None }, WorkspaceTab { name: "home-edit/", doc: Some("global nvim"), directory: "/home/florian", shell: Some("bash"), env: None }, WorkspaceTab { name: "home/", doc: Some("~"), directory: "/home/florian", shell: Some("bash"), env: None }]
Available tabs:
    docker-images/                         (various repositories for docker containers)
    docker-images/fh-c/                    (Docker container f眉r Abgaben in SysProg 2020/21)
    docker-images/fh-latex/                (Docker container for building latex documents)
    docker-images/fh-umlet/                (Docker container for converting umlet diagrams into images)
    dotfiles/                              (various configuration files)
    dotfiles/edit/                         (nvim)
    dotfiles/test/                         (test if stuff is working)
    fh/
    fh/WS3/                                (WS3 2020/21)
    fh/WS3/DB/                             (Datenbanken I WS3 2020/21)
    fh/WS3/DB/projekt/                     (Semester-Projekt)
    fh/WS3/DB/projekt/docker/              (build and execute)
    fh/WS3/DB/projekt/edit/                (nvim)
    fh/WS3/DB/projekt/frontend/            (cargo check & co. for the frontend code)
    fh/WS3/PM/                             (Projektmanagement WS3 2020/21)
    fh/WS3/PM/Hausarbeit/                  (Hausarbeit als Klausur-Ersatz)
    fh/WS3/PM/Hausarbeit/edit/             (nvim)
    fh/WS3/PM/Hausarbeit/latex/            (Build the pdf document)
    fh/WS3/SE/                             (Software Engineering WS3)
    fh/WS3/SE/klausur/                     (Implementierung der Klausur-Abgabe)
    fh/WS3/SE/klausur/docker/              (build and execute)
    fh/WS3/SE/klausur/edit/                (nvim)
    fh/WS3/SE/klausur_doku/                (Softwarespezifikation der Klausur-Abgabe)
    fh/WS3/SE/klausur_doku/edit/           (nvim)
    fh/WS3/SE/klausur_doku/latex/          (build the pdf document)
    fh/WS3/SP/                             (Systemprogrammierung WS 2020/21)
    fh/WS3/SP/abgaben/                     (Gemeinsames Abgaben Repo)
    fh/WS3/SP/abgaben/edit/                (nvim)
    fh/WS3/SP/abgaben/ssh/                 (ssh session for swlab raspi)
    fh/WS3/SP/abgaben/vorgaben/            (implementierungen im 'vorgaben'-Ordner)
    fh/WS3/SP/abgaben/vorgaben/compile/    (build and run)
    fh/WS3/SP/abgaben/vorgaben/edit/       (nvim)
    fh/WS3/SP/unterlagen/                  (Unterlagen Repo)
    fh/WS3/VSys/                           (Verteilte Systeme (...) WS 2020/21)
    fh/WS3/VSys/abgaben/                   (Gemeinsames Abgaben Repo)
    fh/WS3/VSys/abgaben/compile/           (Bauen (und ausf眉hren) von kleinen Aufgaben)
    fh/WS3/VSys/abgaben/edit/              (nvim)
    fh/WS3/VSys/abgaben/latex/             (build the pdf)
    fh/WS3/VSys/abgaben/test/              (Testen von Implementierungen)
    florian/                               (global workspace)
    home-edit/                             (global nvim)
    home/                                  (~)
00:31:50.346 CMD [DEBUG] (13) lifeline::service: OK MainListTabsService/run
00:31:50.346 CMD [DEBUG] (13) lifeline::spawn: END MainListTabsService/run ()
00:31:50.346 CMD [DEBUG] (1) tab_command::service::terminal: raw mode disabled
00:31:50.346 CMD [DEBUG] (1) tab_command: tab-command shutdown.
00:31:50.346 CMD [INFO] tab-command runtime stopped
00:31:50.346 CMD [DEBUG] (10) lifeline::spawn: CANCEL MainAutocompleteCloseTabsService/run
00:31:50.346 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainAutocompleteTabsService/run
00:31:50.346 CMD [DEBUG] (10) lifeline::spawn: CANCEL MainCloseTabsService/run
00:31:50.346 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainCheckWorkspaceService/run
00:31:50.346 CMD [DEBUG] (10) lifeline::spawn: CANCEL MainDisconnectTabsService/run
00:31:50.346 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainGlobalShutdownService/run
00:31:50.346 CMD [DEBUG] (10) lifeline::spawn: CANCEL MainSelectInteractiveService/run
00:31:50.346 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainSelectTabService/run
00:31:50.346 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/tx_selected
00:31:50.346 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/forward_create
00:31:50.346 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/forward_request
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/forward_shutdown
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/forward_tabs_state
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/forward_workspace_state
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/forward_request
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/rx_response
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL WebsocketService/run
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL WebsocketConnectionBus/forward_send
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL WebsocketConnectionBus/forward_recv
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL SelectTabService/run
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL WorkspaceService/scan
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL CreateTabService/request_tab
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabStateService/select
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabStateService/select_named
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabStateService/tab_metadata
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabStateService/deselect
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabStateService/publish
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabStateService/websocket
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL ActiveTabsService/run
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalBus/recv
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalBus/send
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalBus/forward_shutdown
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalBus/recv
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalBus/main_recv
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalBus/main_recv
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalService/dispatch_mode
00:31:50.347 CMD [DEBUG] (13) lifeline::spawn: CANCEL TerminalEventService/run
00:31:50.348 CMD [INFO] tab-command runtime stopped

And the last case, tab successfully reusing an existing daemon:

00:39:27.817 CMD [INFO] tab-command runtime starting
00:39:27.820 CMD [DEBUG] (1) tab_command: daemon is ready
00:39:27.820 CMD [DEBUG] (1) tungstenite::handshake::client: Client handshake done.
00:39:27.821 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketResource stored in MainBus
00:39:27.821 CMD [INFO] Launching MainService
00:39:27.821 CMD [DEBUG] (1) lifeline::dyn_bus::storage: MainRecv linked in MainBus
00:39:27.821 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in MainBus
00:39:27.821 CMD [DEBUG] (1) lifeline::dyn_bus::storage: MainShutdown linked in MainBus
00:39:27.821 CMD [DEBUG] (1) lifeline::spawn: START MainAutocompleteTabsService/run
00:39:27.822 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<ActiveTabsState> linked in MainBus
00:39:27.822 CMD [DEBUG] (1) lifeline::spawn: START MainAutocompleteCloseTabsService/run
00:39:27.822 CMD [DEBUG] (1) lifeline::spawn: START MainCheckWorkspaceService/run
00:39:27.822 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Request linked in MainBus
00:39:27.822 CMD [DEBUG] (1) lifeline::spawn: START MainCloseTabsService/run
00:39:27.822 CMD [DEBUG] (1) lifeline::spawn: START MainDisconnectTabsService/run
00:39:27.822 CMD [DEBUG] (1) lifeline::spawn: START MainGlobalShutdownService/run
00:39:27.823 CMD [DEBUG] (1) lifeline::spawn: START MainListTabsService/run
00:39:27.823 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalRecv linked in MainBus
00:39:27.823 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabRecv linked in MainBus
00:39:27.823 CMD [DEBUG] (1) lifeline::spawn: START MainSelectInteractiveService/run
00:39:27.823 CMD [DEBUG] (1) lifeline::spawn: START MainSelectTabService/run
00:39:27.824 CMD [DEBUG] (1) lifeline::dyn_bus::storage: SelectOrRetaskTab linked in TabBus
00:39:27.824 CMD [DEBUG] (1) lifeline::dyn_bus::storage: DeselectTab linked in TabBus
00:39:27.824 CMD [DEBUG] (1) lifeline::dyn_bus::storage: ScanWorkspace linked in TabBus
00:39:27.825 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_create
00:39:27.825 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Request linked in TabBus
00:39:27.825 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_request
00:39:27.825 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabShutdown linked in TabBus
00:39:27.826 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_shutdown
00:39:27.826 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<ActiveTabsState> linked in TabBus
00:39:27.826 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_tabs_state
00:39:27.826 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in TabBus
00:39:27.827 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_workspace_state
00:39:27.827 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabState linked in TabBus
00:39:27.827 CMD [DEBUG] (1) lifeline::spawn: START TabBus/forward_request
00:39:27.827 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Response linked in MainBus
00:39:27.827 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabsRecv linked in TabBus
00:39:27.827 CMD [DEBUG] (1) lifeline::dyn_bus::storage: SelectTab linked in TabBus
00:39:27.827 CMD [DEBUG] (1) lifeline::spawn: START TabBus/rx_response
00:39:27.827 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabState linked in MainBus
00:39:27.828 CMD [DEBUG] (1) lifeline::spawn: START TabBus/tx_selected
00:39:27.828 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketResource stored in WebsocketConnectionBus
00:39:27.828 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketSend linked in WebsocketConnectionBus
00:39:27.828 CMD [DEBUG] (1) lifeline::dyn_bus::storage: WebsocketRecv linked in WebsocketConnectionBus
00:39:27.828 CMD [DEBUG] (1) lifeline::spawn: START WebsocketService/run
00:39:27.828 CMD [DEBUG] (1) lifeline::spawn: START WebsocketConnectionBus/forward_send
00:39:27.828 CMD [DEBUG] (1) lifeline::spawn: START WebsocketConnectionBus/forward_recv
00:39:27.828 CMD [DEBUG] (1) lifeline::dyn_bus::storage: CreateTabRequest linked in TabBus
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START SelectTabService/run
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/select
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/select_named
00:39:27.829 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TabMetadataState linked in TabBus
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/tab_metadata
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/deselect
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/publish
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START TabStateService/websocket
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START WorkspaceService/scan
00:39:27.829 CMD [INFO] Scanning workspace
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START CreateTabService/request_tab
00:39:27.829 CMD [DEBUG] (1) lifeline::spawn: START ActiveTabsService/run
00:39:27.830 CMD [INFO] Init({TabId(0): TabMetadata { id: TabId(0), name: "docker-images/", doc: Some("various repositories for docker containers"), dimensions: (213, 47), env: {"COLORTERM": "truecolor", "TERM": "alacritty"}, shell: "bash", dir: "/home/florian/Documents/programming/docker-images/" }})
00:39:27.830 CMD [INFO] Update(TabMetadata { id: TabId(0), name: "docker-images/", doc: Some("various repositories for docker containers"), dimensions: (213, 47), env: {"TERM": "alacritty", "COLORTERM": "truecolor"}, shell: "bash", dir: "/home/florian/Documents/programming/docker-images/" })
00:39:27.830 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalMode linked in TerminalBus
00:39:27.830 CMD [INFO] Loading workspace: /home/florian
00:39:27.830 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/recv
00:39:27.830 CMD [INFO] Scanning workspace
00:39:27.830 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalSend linked in TerminalBus
00:39:27.830 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/send
00:39:27.830 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalShutdown linked in TerminalBus
00:39:27.830 CMD [INFO] Loading workspace: /home/florian
00:39:27.831 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/forward_shutdown
00:39:27.831 CMD [INFO] Scanning workspace
00:39:27.831 CMD [DEBUG] (1) lifeline::dyn_bus::storage: Option<WorkspaceState> linked in TerminalBus
00:39:27.831 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/recv
00:39:27.831 CMD [INFO] Loading workspace: /home/florian
00:39:27.831 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalOutput linked in TerminalBus
00:39:27.831 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/main_recv
00:39:27.832 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalInput linked in TerminalBus
00:39:27.832 CMD [DEBUG] (1) lifeline::spawn: START TerminalBus/main_recv
00:39:27.832 CMD [DEBUG] (1) lifeline::dyn_bus::storage: TerminalSizeState linked in TerminalBus
00:39:27.832 CMD [DEBUG] (1) lifeline::spawn: START TerminalEventService/run
00:39:27.833 CMD [DEBUG] (1) lifeline::spawn: START TerminalService/dispatch_mode
00:39:27.833 CMD [DEBUG] (1) tab_command: Main spawn complete
00:39:27.833 CMD [DEBUG] (1) tab_command: Parsing CLI arguments...
00:39:27.833 CMD [INFO] CLI Match: ListTabs
00:39:27.833 CMD [DEBUG] (13) tab_command::service::main::list_tabs: echo tabs: [WorkspaceTab { name: "docker-images/", doc: Some("various repositories for docker containers"), directory: "/home/florian/Documents/programming/docker-images/", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-c/", doc: Some("Docker container f眉r Abgaben in SysProg 2020/21"), directory: "/home/florian/Documents/programming/docker-images/fh-c-dev", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-latex/", doc: Some("Docker container for building latex documents"), directory: "/home/florian/Documents/programming/docker-images/fh-latex", shell: Some("bash"), env: None }, WorkspaceTab { name: "docker-images/fh-umlet/", doc: Some("Docker container for converting umlet diagrams into images"), directory: "/home/florian/Documents/programming/docker-images/fh-umlet", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/", doc: Some("various configuration files"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/edit/", doc: Some("nvim"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "dotfiles/test/", doc: Some("test if stuff is working"), directory: "/home/florian/.dotfiles", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/", doc: None, directory: "/home/florian/Documents/fh", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/", doc: Some("WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/", doc: Some("Datenbanken I WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/", doc: Some("Semester-Projekt"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/docker/", doc: Some("build and execute"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/DB/projekt/frontend/", doc: Some("cargo check & co. for the frontend code"), directory: "/home/florian/Documents/fh/WS3_20_21/Datenbanken_I/projekt/frontend", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/", doc: Some("Projektmanagement WS3 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/", doc: Some("Hausarbeit als Klausur-Ersatz"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/PM/Hausarbeit/latex/", doc: Some("Build the pdf document"), directory: "/home/florian/Documents/fh/WS3_20_21/Projektmanagement/Hausarbeit", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/", doc: Some("Software Engineering WS3"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/", doc: Some("Implementierung der Klausur-Abgabe"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/docker/", doc: Some("build and execute"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/", doc: Some("Softwarespezifikation der Klausur-Abgabe"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SE/klausur_doku/latex/", doc: Some("build the pdf document"), directory: "/home/florian/Documents/fh/WS3_20_21/Software_Engineering/klausur_doku", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/", doc: Some("Systemprogrammierung WS 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/", doc: Some("Gemeinsames Abgaben Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/ssh/", doc: Some("ssh session for swlab raspi"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/", doc: Some("implementierungen im \'vorgaben\'-Ordner"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/compile/", doc: Some("build and run"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/abgaben/vorgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/Gruppen_Abgaben/vorgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/SP/unterlagen/", doc: Some("Unterlagen Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Systemprogrammierung/sp_w20_unterlagen", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/", doc: Some("Verteilte Systeme (...) WS 2020/21"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/", doc: Some("Gemeinsames Abgaben Repo"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/compile/", doc: Some("Bauen (und ausf眉hren) von kleinen Aufgaben"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/edit/", doc: Some("nvim"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/latex/", doc: Some("build the pdf"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "fh/WS3/VSys/abgaben/test/", doc: Some("Testen von Implementierungen"), directory: "/home/florian/Documents/fh/WS3_20_21/Verteilte_Systeme/Gruppen_Abgaben", shell: Some("bash"), env: None }, WorkspaceTab { name: "florian/", doc: Some("global workspace"), directory: "/home/florian", shell: Some("bash"), env: None }, WorkspaceTab { name: "home-edit/", doc: Some("global nvim"), directory: "/home/florian", shell: Some("bash"), env: None }, WorkspaceTab { name: "home/", doc: Some("~"), directory: "/home/florian", shell: Some("bash"), env: None }]
Available tabs:
00:39:27.838 CMD [    docker-images/                         (various repositories for docker containers)
DEBUG]     docker-images/fh-c/                    (Docker container f眉r Abgaben in SysProg 2020/21)
(    docker-images/fh-latex/                (Docker container for building latex documents)
10) lifeline::channel::lifeline::receiver    docker-images/fh-umlet/                (Docker container for converting umlet diagrams into images)
: RECV:     dotfiles/                              (various configuration files)
    dotfiles/edit/                         (nvim)
ListTabs
    dotfiles/test/                         (test if stuff is working)
    fh/
    fh/WS3/                                (WS3 2020/21)
    fh/WS3/DB/                             (Datenbanken I WS3 2020/21)
    fh/WS3/DB/projekt/                     (Semester-Projekt)
    fh/WS3/DB/projekt/docker/              (build and execute)
    fh/WS3/DB/projekt/edit/                (nvim)
    fh/WS3/DB/projekt/frontend/            (cargo check & co. for the frontend code)
    fh/WS3/PM/                             (Projektmanagement WS3 2020/21)
    fh/WS3/PM/Hausarbeit/                  (Hausarbeit als Klausur-Ersatz)
    fh/WS3/PM/Hausarbeit/edit/             (nvim)
    fh/WS3/PM/Hausarbeit/latex/            (Build the pdf document)
    fh/WS3/SE/                             (Software Engineering WS3)
    fh/WS3/SE/klausur/                     (Implementierung der Klausur-Abgabe)
    fh/WS3/SE/klausur/docker/              (build and execute)
    fh/WS3/SE/klausur/edit/                (nvim)
    fh/WS3/SE/klausur_doku/                (Softwarespezifikation der Klausur-Abgabe)
    fh/WS3/SE/klausur_doku/edit/           (nvim)
    fh/WS3/SE/klausur_doku/latex/          (build the pdf document)
    fh/WS3/SP/                             (Systemprogrammierung WS 2020/21)
    fh/WS3/SP/abgaben/                     (Gemeinsames Abgaben Repo)
    fh/WS3/SP/abgaben/edit/                (nvim)
    fh/WS3/SP/abgaben/ssh/                 (ssh session for swlab raspi)
    fh/WS3/SP/abgaben/vorgaben/            (implementierungen im 'vorgaben'-Ordner)
    fh/WS3/SP/abgaben/vorgaben/compile/    (build and run)
    fh/WS3/SP/abgaben/vorgaben/edit/       (nvim)
    fh/WS3/SP/unterlagen/                  (Unterlagen Repo)
    fh/WS3/VSys/                           (Verteilte Systeme (...) WS 2020/21)
    fh/WS3/VSys/abgaben/                   (Gemeinsames Abgaben Repo)
    fh/WS3/VSys/abgaben/compile/           (Bauen (und ausf眉hren) von kleinen Aufgaben)
    fh/WS3/VSys/abgaben/edit/              (nvim)
    fh/WS3/VSys/abgaben/latex/             (build the pdf)
    fh/WS3/VSys/abgaben/test/              (Testen von Implementierungen)
    florian/                               (global workspace)
    home-edit/                             (global nvim)
    home/                                  (~)
00:39:27.838 CMD [DEBUG] (13) lifeline::service: OK MainListTabsService/run
00:39:27.838 CMD [DEBUG] (1) tab_command::service::terminal: raw mode disabled
00:39:27.838 CMD [DEBUG] (1) tab_command: tab-command shutdown.
00:39:27.838 CMD [INFO] tab-command runtime stopped
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: END MainListTabsService/run ()
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainAutocompleteCloseTabsService/run
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainCloseTabsService/run
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainCheckWorkspaceService/run
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainDisconnectTabsService/run
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainGlobalShutdownService/run
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL MainAutocompleteTabsService/run
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL MainSelectTabService/run
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/tx_selected
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: CANCEL MainSelectInteractiveService/run
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/forward_create
00:39:27.839 CMD [DEBUG] (13) lifeline::spawn: CANCEL TabBus/forward_request
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/forward_shutdown
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/forward_tabs_state
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/forward_workspace_state
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/forward_request
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabBus/rx_response
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL WebsocketService/run
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL WebsocketConnectionBus/forward_send
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL WebsocketConnectionBus/forward_recv
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL SelectTabService/run
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL WorkspaceService/scan
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL CreateTabService/request_tab
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabStateService/select
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabStateService/select_named
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabStateService/tab_metadata
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabStateService/deselect
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabStateService/publish
00:39:27.839 CMD [DEBUG] (10) lifeline::spawn: CANCEL TabStateService/websocket
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL ActiveTabsService/run
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalBus/recv
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalBus/send
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalBus/forward_shutdown
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalBus/recv
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalBus/main_recv
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalBus/main_recv
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalService/dispatch_mode
00:39:27.840 CMD [DEBUG] (10) lifeline::spawn: CANCEL TerminalEventService/run
00:39:27.840 CMD [INFO] tab-command runtime stopped

Regarding the truncation, yes it does happen directly on tab invocation.
Now some more info (that I should have given from the start in hindsight):

  • OS: Void Linux (rolling release)
  • I'm running X11, not Wayland if that should matter
  • My Desktop Environment is KDE, version 5.20.5
  • Terminal Emulator: alacritty --version: alacritty 0.7.0-dev (ada2680), built with a patch to support ligatures (see https://github.com/zenixls2/alacritty/tree/ligature, or Support for ligatures聽alacritty/alacritty#50 for details)
  • Shell: bash --version: GNU bash, Version 5.1.4(1)-release (x86_64-unknown-linux-gnu)
  • I'm starting tab with a keybind from my DE, which runs the command alacritty -e /home/florian/.cargo/bin/tab (-e tells alacritty to execute the following command)
  • The issue does not occur when switching between tabs with the keybind (ctrl-T)
  • The issue does occur even if one tab client is always left active (e. g. open in a terminal, but not actively used by me)
  • I have no idea if it matters, but I use starhip for the bash prompt: starship --version: starship 0.48.0

@austinjones
Copy link
Owner

austinjones commented Jan 14, 2021

Ah! There is definitely something going on with the alacrity keybinding. I haven't set it up that way and I'm seeing weird behavior (the window quits when I try to select a session). What seems to happen there is that Alacritty sets the $SHELL env var with the contents of the -e flag. Tab honors this env var when launching the PTY backend, and unhelpfully launches the session with tab as the shell. Tab then refuses to open, because it is being asked to open the fuzzy finder within a session (see #262).

It still wouldn't explain why the daemon quits though. I'm still looking at that.

@austinjones
Copy link
Owner

Also, thanks so much for all the info! It's super helpful 馃憤馃徎

@austinjones
Copy link
Owner

Hey @liketechnik,
I'm getting ready to push a bugfix release this week. I'm looking at this and hopefully will be able to include a fix.

@austinjones
Copy link
Owner

austinjones commented Jan 21, 2021

I minimized the repro steps, and it's pretty easy to test:

$ tab -W
$ alacritty -e tab <ESC>
$ tab --log debug --list

The client is being reaped when it exits, which kills the daemon (as it technically is a zombie process). This happens because Alacritty calls Child::try_wait when the tab process exits (see source). The daemon is a child process of the client, so it's killed as a zombie. tab --list is correctly re-launching the daemon.

Looking into a fix.

@austinjones
Copy link
Owner

Hey @liketechnik,
I just published a fix in v0.5.6. The daemon should now keep running, even if launched with alacritty -e tab or alacritty -e bash -c tab.

@liketechnik
Copy link
Author

That's great news! Thank you for the fast fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants