shell-pool / shpool

Think tmux, then aim... lower
Apache License 2.0
1.14k stars 20 forks source link

"ERROR ThreadId(01) binding to socket" when socket parent dir does not exist #118

Open rlue opened 1 month ago

rlue commented 1 month ago

What happened

shpool daemon errors out if the parent directory to the socket ($XDG_RUNTIME_DIR/shpool) does not exist:

$ cargo install shpool
$ shpool daemon
2024-08-10T18:35:15.779096Z  WARN ThreadId(01) run: skip reading config file /etc/shpool/config.toml: Os { code: 2, kind: NotFound, message: "No such file or directory" }
2024-08-10T18:35:15.779124Z  WARN ThreadId(01) run: skip reading config file /home/rlue/.config/shpool/config.toml: Os { code: 2, kind: NotFound, message: "No such file or directory" }
2024-08-10T18:35:15.779133Z  INFO ThreadId(01) run: starting with config: Config { norc: None, noecho: None, nosymlink_ssh_auth_sock: None, noread_etc_environment: None, shell: None, env: None, forward_env: None, initial_path: None, session_restore_mode: None, output_spool_lines: None, keybinding: None, prompt_prefix: None, motd: None, motd_args: None }
2024-08-10T18:35:15.780081Z  INFO ThreadId(01) run:new: new
2024-08-10T18:35:15.780238Z  INFO ThreadId(01) run:new: close time.busy=123µs time.idle=35.3µs
2024-08-10T18:35:15.780257Z  INFO ThreadId(01) run: no systemd activation socket: fetching LISTEN_FDS env var

Caused by:
    environment variable not found
2024-08-10T18:35:15.780334Z  INFO ThreadId(01) run: close time.busy=1.28ms time.idle=39.1µs
2024-08-10T18:35:15.780347Z ERROR ThreadId(01) binding to socket

$ mkdir -p "$XDG_RUNTIME_DIR/shpool"
$ shpool daemon
# 👍

Version info

0.6.3

jnboehm commented 4 weeks ago

Oh, I also ran into this issue. Should probably be an easy fix to simply check if the directory exists and create it, if it does not.