The browser terminal in a hosting panel is handy for quick jobs — checking permissions, unpacking a small archive, running one command. Longer work is another story: an idle window closes, a big database import dies halfway and you can't tell what finished. That is a natural limit of browser terminals, not a bug. Here's why it happens and what to use instead.
Why the connection drops
A panel terminal relays every keystroke from your browser through the panel to a shell on the server. Each link — panel session, web server or proxy, browser, your internet connection — has its own timeouts.
- Idle timeouts. Proxies close connections that carry no data for a while, so a long silent command looks idle and gets cut.
- Browser and laptop. Background tabs are throttled; sleep mode or a page refresh ends the session.
- Network and NAT. Routers and mobile networks drop quiet TCP connections; switching from Wi-Fi to mobile data changes your IP. Even a normal SSH client then reports
client_loop: send disconnect: Broken pipe. - The command dies too. When the terminal closes, the shell receives SIGHUP and its child commands usually stop — leaving half-done imports or broken migrations.
Fix 1: a real SSH client with keepalive
Use a proper client (Linux/macOS terminal, PowerShell or Windows Terminal) and have it send small keepalive packets:
Host example
HostName server.example.uz
User user123
Port 22
ServerAliveInterval 30
ServerAliveCountMax 4
This pings every 30 seconds and gives up after four missed replies. One-off: ssh -o ServerAliveInterval=30 user123@server.example.uz. In PuTTY, set "Seconds between keepalives" under Connection.
Fix 2: work inside tmux or screen
Keepalive can't help if your laptop sleeps or the internet vanishes. A terminal multiplexer keeps the session alive on the server so you can reattach. Check it's installed first:
which tmux screen
tmux new -s import # start a session
# Ctrl+B, then D to detach
tmux attach -t import # reattach later
With screen: screen -S import, detach with Ctrl+A then D, reattach with screen -r import.
Fix 3: nohup in the background
Without tmux or screen, nohup makes a process ignore SIGHUP; & backgrounds it. Always log the output:
nohup sh -c 'gunzip < ~/backup/db.sql.gz | mysql --defaults-extra-file=$HOME/.my.cnf example_db' > ~/import.log 2>&1 &
tail -f ~/import.log
Keep the database password in ~/.my.cnf (a [client] section with user and password) with chmod 600, delete it afterwards, and check progress with ps ux.
Example: importing an online shop database
A developer moving a Namangan clothing shop's site tried to import a 1.5 GB SQL dump through the panel terminal. After a few silent minutes the terminal closed, leaving half the tables and a truncated last one. Second time he connected over SSH with keepalive, opened tmux and started the import there. His internet dropped twice on the road, but each tmux attach showed the import still running, and it finished cleanly.
Which tool for which job
| Task | Use |
|---|---|
| One or two quick commands | Panel terminal |
| A few minutes of interactive work | SSH client + keepalive |
| Large import, archiving, migration | SSH + tmux or screen |
| No tmux, long task | nohup + log file |
On sayt.uz hosting you open the panel from the sayt.uz cabinet, and SSH works if your plan includes it. If SSH with keepalive still drops regularly, send support the time of the disconnect and your ssh -v output.