공유 소켓을 사용한 영구 tmux 세션

공유 소켓을 사용한 영구 tmux 세션

나는 세션이 0인 /tmp/shared의 소켓에 항상 tmux 세션이 있기를 원합니다. 그렇게 하면 항상 SSH를 통해 세션에 연결할 수 있습니다.

ssh [email protected] -t tmux -S /tmp/shared attach-session -t 0

다른 사용자와 공유할 수 있고 지식이 부족하거나 부주의한 사용자가 세션을 나갈 때 [ctrl] + d 대신 종료를 사용하는 경우 자체를 다시 만들 수 있기를 원합니다.

크론에서 이 작업을 수행하는 것이 가능하다고 확신하지만 더 좋은 방법이 없다는 것을 모르겠습니다.

답변1

선택한 사용자 상호 그룹이 소유한 소켓 파일을 생성하고 세션 이름을 사용하는 것이 세션 번호를 사용하는 것보다 낫습니다.

/// Create session
tmux -S /tmp/shareds new -s sharedsession
/// Change ownership to group
chgrp mutual_group_name /tmp/shareds
/// Run this in other user or ssh session to attach yourself
tmux -S /tmp/shareds attach -t sharedsession

세션 상태를 확인하는 몇 가지 방법:

  1. 크론을 생성할 수 있지만 최소 1분 규칙으로 인해 공유 세션 생성이 지연됩니다.
  2. init.d 스크립트를 사용하여 서비스로 실행합니다.이 하나
  3. Supervisord를 설치하고 이를 사용하여 공유 세션 생성 스크립트를 자동으로 데몬화할 수 있습니다.

작년에 내가 사용했던친구데몬으로 실행 중입니다. 데몬화된 tmate를 사용하여 다른 시스템에서 tmate 서버와 연결된 세션을 생성할 수 있습니다. 하지만 개인 네트워크에서 사용했기 때문에 보안을 보장할 수 없습니다.

답변2

다음은 세션 0에 연결되거나 새 세션을 생성합니다.

tmux new-session -t 0 || tmux

특정 세션 번호를 사용하여 세션을 생성할 수는 없을 것 같으므로 세션 이름을 사용하는 것이 좋습니다. 그러나 사용자 정의 소켓은 귀하의 상황에 충분할 수 있습니다.

여기서는 세션 0이 존재하지 않으면 생성될 것이라고 가정합니다.

관련 정보