Hosting panelidagi brauzer terminali qisqa ishlar uchun juda qulay: fayl ruxsatini tekshirish, kichik arxivni ochish yoki bitta buyruqni bajarish uchun alohida dastur o'rnatish shart emas. Lekin uzoqroq ishlash boshlanishi bilan muammo chiqadi: bir necha daqiqa harakatsiz qolgan oyna o'z-o'zidan yopiladi, katta bazani import qilish o'rtasida ulanish uziladi va ish nima bo'lganini bilmay qolasiz. Bu xato emas, balki brauzer terminalining tabiiy cheklovi. Quyida uzilishlarning sabablarini va uzoq ishlar uchun to'g'ri yo'lni ko'rib chiqamiz.
Brauzer terminali qanday ishlaydi
Paneldagi terminal aslida sizning brauzeringiz va server o'rtasidagi vositachi. Siz yozgan har bir belgi veb-sahifa orqali panelga, u yerdan serverdagi shell jarayoniga uzatiladi. Bu zanjirda bir nechta bo'g'in bor va ularning har biri o'z vaqt chegarasiga ega: panel sessiyasi, veb-server yoki proksi, brauzerning o'zi va sizning internet ulanishingiz. Zanjirning istalgan qismi uzilsa, terminal yopiladi va unda ishga tushirilgan buyruq ham odatda to'xtaydi.
Uzilishning asosiy sabablari
Harakatsizlik vaqti chegarasi
Ko'p proksi va veb-serverlar ma'lum vaqt davomida ma'lumot almashinmagan ulanishni yopadi. Agar siz uzoq ishlaydigan buyruqni ishga tushirib, u hech narsa chiqarmasa, terminal tomonidan qaraganda ulanish "jim" bo'lib qoladi va chegaraga yetgach uziladi. Panel sessiyasining o'zi ham ma'lum vaqtdan keyin qayta kirishni talab qilishi mumkin.
Brauzer va kompyuter
Brauzerlar fondagi yorliqlarni resurs tejash uchun "uxlatib" qo'yadi. Noutbuk qopqog'i yopilsa yoki kompyuter uyqu rejimiga o'tsa, ulanish albatta uziladi. Sahifani tasodifan yangilash ham terminal sessiyasini yo'qotadi.
Tarmoq va NAT
Uy routeri yoki mobil operator tarmog'i uzoq vaqt jim turgan TCP ulanishlarini o'z jadvalidan o'chirib yuboradi. Mobil internetda IP manzil almashinishi yoki Wi-Fi'dan mobil tarmoqqa o'tish ham ulanishni uzadi. Bunday hollarda oddiy SSH mijozida ham client_loop: send disconnect: Broken pipe kabi xabar chiqadi.
Buyruq sessiya bilan birga o'ladi
Eng muhim nuqta shu: terminal yopilganda server shell jarayoniga SIGHUP signali yuboriladi va undan ishga tushirilgan buyruqlar odatda to'xtaydi. Ya'ni ulanish uzilishi faqat noqulaylik emas — u yarim qolgan import, chala arxivlangan papka yoki buzilgan migratsiyaga olib kelishi mumkin.
Yechim 1: haqiqiy SSH mijozi va keepalive
Uzoq ish uchun brauzer o'rniga oddiy SSH mijozidan foydalaning: Linux va macOS terminali, Windows'da PowerShell yoki Windows Terminal. Ulanish jim qolib uzilmasligi uchun mijoz har bir necha soniyada kichik "tirikman" signalini yuborsin. Buni ~/.ssh/config fayliga yozib qo'yish qulay:
Host misol
HostName server.misol.uz
User user123
Port 22
ServerAliveInterval 30
ServerAliveCountMax 4
Bu yerda ServerAliveInterval 30 har 30 soniyada signal yuboradi, ServerAliveCountMax 4 esa ketma-ket 4 ta javobsiz signaldan keyin ulanishni uzilgan deb hisoblaydi. Bir martalik ulanish uchun xuddi shu sozlamani buyruq qatorida ham berish mumkin: ssh -o ServerAliveInterval=30 user123@server.misol.uz. PuTTY'da bu Connection bo'limidagi "Seconds between keepalives" maydoni orqali sozlanadi.
Yechim 2: tmux yoki screen ichida ishlash
Keepalive tarmoq jimligidan himoya qiladi, lekin noutbuk uyquga ketsa yoki internet butunlay o'chsa, ulanish baribir uziladi. Bunday holat uchun terminal multipleksori kerak. tmux serverda sessiya ochadi va siz uzilib qolsangiz ham u ishlashda davom etadi; qayta ulanganingizda xuddi o'sha joyga qaytasiz. Avval serverda mavjudligini tekshiring, chunki u har bir hostingda o'rnatilmagan bo'lishi mumkin:
which tmux screen
tmux new -s import # yangi sessiya ochish
# ... uzoq buyruqni shu yerda ishga tushiring ...
# Ctrl+B, keyin D — sessiyadan chiqish (buyruq ishlashda davom etadi)
tmux attach -t import # qayta ulanish
screen ham xuddi shunday ishlaydi: screen -S import bilan ochiladi, Ctrl+A keyin D bilan ajratiladi va screen -r import bilan qayta ulanadi.
Yechim 3: nohup bilan fonda ishga tushirish
Agar tmux ham, screen ham yo'q bo'lsa, nohup buyrug'i yordam beradi. U jarayonni SIGHUP signaliga befarq qiladi, oxiridagi & esa uni fonga o'tkazadi. Chiqishni albatta faylga yo'naltiring, keyin uni istalgan vaqtda o'qiysiz:
nohup sh -c 'gunzip < ~/backup/baza.sql.gz | mysql --defaults-extra-file=$HOME/.my.cnf misol_db' > ~/import.log 2>&1 &
tail -f ~/import.log
Baza parolini buyruq qatoriga yozmaslik uchun u ~/.my.cnf fayliga joylashtiriladi va fayl ruxsati chmod 600 bilan faqat sizga ochiq qilinadi. Ish tugagach, bu faylni o'chirib qo'yish mumkin. Jarayon hali ishlayotganini ps ux bilan tekshirasiz.
[client]
user=misol_user
password=bu-yerga-baza-paroli
Amaliy misol: internet-do'kon bazasini import qilish
Namangandagi kiyim do'koni saytini boshqa hostingdan ko'chirayotgan dasturchi 1,5 GB hajmli SQL dampni panel terminali orqali import qilmoqchi bo'ldi. Import bir necha daqiqa jim ishladi, so'ng terminal yopildi. Qayta kirganda bazada jadvallarning faqat yarmi bor edi, oxirgisi esa chala yozilgan edi. Ikkinchi urinishda u kompyuteridan keepalive sozlangan SSH bilan ulandi, tmux sessiyasini ochdi va importni o'sha yerda boshladi. Yo'lda internet ikki marta uzilib qoldi, lekin har safar tmux attach bilan qaytganda import davom etayotgan edi va oxirida xatosiz tugadi.
Qaysi ish uchun qaysi vosita
| Vazifa | Tavsiya |
|---|---|
| Bir-ikki qisqa buyruq | Panel terminali yetarli |
| Bir necha daqiqalik interaktiv ish | SSH mijozi + keepalive |
| Katta import, arxivlash, migratsiya | SSH + tmux yoki screen |
| tmux yo'q, ish uzoq | nohup + log fayl |
sayt.uz hostingida panelga sayt.uz kabinetidan kirasiz, SSH esa tarifingizda yoqilgan bo'lsa ishlaydi. Agar SSH bilan ulanish ham keepalive sozlanganiga qaramay muntazam uzilsa, ulanish vaqti va ssh -v chiqishini texnik yordamga yuboring, shunda muammo tarmoqdami yoki server tomonidami aniqlash osonroq bo'ladi.