SSH sessiyası VPN ilə ölür: tmux, yoxsa iş icraçısı?
Yenidən qoşulmuş tunel köhnə SSH soketini canlandırmır. İşin yenidən qoşulacağınız terminal sessiyasına, yoxsa nəticəsi qeyd olunan bir işə ehtiyacı olduğuna qərar verin.
VPN göstəriciniz yaşıl olur, marşrut qayıdır və açıq qoyduğunuz SSH pəncərəsi heç vaxt əmr sətri qaytarmır. Marşrutun bərpası ondan istifadə edən TCP söhbətini bərpa etmir, ona görə də o pəncərəyə yazılan hər şey itib. Əsl narahatlıq redaktor buferi və ya uzun miqrasiyadırsa, həll o işi bir bağlantıya bağlamağı dayandırmaqdır. tmux və iş icraçısı bu problemin fərqli yarılarını həll edir.
Yenidən qoşulmuş VPN soketi davam etdirmir
TCP-nin ünvan dəyişdikdən sonra davam etmək anlayışı yoxdur. SSH bağlantısı hər iki son nöqtə ilə müəyyən edilir və tunel yenidən qurulduqda yerli ünvan dəyişə bilər və köhnə soket ölür. Server bunu nəhayət görür, terminalınız isə dərhal görür.
Müştəri tərəfində keepalive yoxlaması ölü həmsöhbəti daha tez aşkar edir. O, sessiyanı geri qaytarmır və artıq işləyən əmri bərpa edə bilmir. Keepalive bir aşkarlayıcıdır, bərpa aləti deyil. Uzaq əmrin sağ qalıb-qalmadığı barədə heç nə demir.
İşi uzaq hostda yerləşdirin
Sessiyanı noutbukda deyil, uzaq hostda yaradın. Həmişəki kimi qoşulun, orada tmux başladın və redaktoru və ya miqrasiyanı onun içində işlədin. Standart prefiks ilə ayrılın və SSH bağlantısı yox olanda sessiya işləməyə davam edir. tmux-u yerli başlatmaq qabığınızı bağlanmış pəncərədən qoruyur, ölü tuneldən gələn uzaq əmri yox.
ssh [email protected]
tmux new-session -s office-workVPN qayıtdıqdan sonra eyni hosta təzə SSH bağlantısı açın və ada görə yenidən qoşulun. Davamlı obyekt bağlantı deyil, sessiyadır. Ona bir həftə sonra da tanıyacağınız bir ad verin.
tmux və iş icraçısı
tmux host işlədiyi müddətdə interaktiv prosesi canlı saxlayır. İş icraçısı və ya xidmət meneceri qeyri-interaktiv işi canlı saxlayır, onun çıxış statusunu qeyd edir və SSH sessiyası tamamilə bitəndə də davam edir. Birincisi izlədiyiniz iş üçündür; ikincisi planladığınız və sonra yoxladığınız iş üçün.
Heç biri host onu bərpa etmək üçün konfiqurasiya olunmayıbsa, yenidən başlatmadan sağ çıxmır. tmux sessiyası maşınla birlikdə ölür, keçici iş isə vahid kimi qeydiyyata alınmayıbsa, açılışla birlikdə ölür. İşin nəyi yaşatmalı olduğuna görə seçin.
Hər iki yanaşma da yenidən qoşulduqdan sonra oxuya biləcəyiniz jurnal tələb edir. Olmadan prosesin mövcud olduğunu bilirsiniz, nə etdiyini yox. Jurnal yolunu sessiya adının yanına yazın.
Nəyin sağ qalmalı olduğuna görə qərar verin
İş yarıda dayansa baş verə biləcək ən pis şeyə görə qərar verin. Redaktor sessiyası yadda saxlanmamış buferləri itirir, bu bezdiricidir amma bərpa olunandır. Dəyişikliklərinin yarısını qeydə alan miqrasiya belə deyil və bu, nəticəsi qeyd olunan icraçının lehinə danışır. İş interaktiv və uzundursa, tmux üstəgəl yazılı jurnal adətən kifayətdir.
systemd-run --user --unit=migrate-customers --collect ./migrate.shNə seçsəniz də, hər hansı bir şeyi yenidən işə salmazdan əvvəl qeydə alınmış nəticəni yoxlayın. Çatışmayan son sətir noutbukun nə gördüyünü deyir, serverin nə qeyd etdiyini yox. Bu fərq işi əvvəldən bağlantıdan kənarda saxlamağın səbəbidir və ayrılma və yenidən qoşulma modeli bunun ən kiçik formasıdır.