VPN-ilmaisin muuttuu vihreäksi, reitti on taas käytössä, eikä auki jätetty SSH-ikkuna palauta koskaan kehotetta. Reitin palauttaminen ei palauta sitä käyttänyttä TCP-keskustelua, joten kaikki siihen ikkunaan kirjoitettu on mennyttä. Jos todellinen huoli on editorin puskuri tai pitkä migraatio, ratkaisu on lopettaa työn sitominen yhteen yhteyteen. tmux ja työn suorittaja ratkaisevat ongelman eri puoliskot.

Uudelleen yhdistetty VPN ei jatka pistoketta

TCP:llä ei ole käsitystä jatkamisesta osoitteen vaihtumisen jälkeen. SSH-yhteys tunnistetaan molemmista päistä, ja kun tunneli rakennetaan uudelleen, paikallinen osoite voi vaihtua ja vanha pistoke on kuollut. Palvelin huomaa sen lopulta, mutta päätteesi huomaa sen heti.

Asiakaspään keepalive havaitsee kuolleen vastapuolen aiemmin. Se ei palauta istuntoa, eikä se voi palauttaa komentoa, joka oli jo käynnissä. Keepalive on havaitsin, ei palautustyökalu. Se ei kerro mitään siitä, säilyikö etäkomento hengissä.

Laita työ etäkoneelle

Luo istunto etäkoneella, ei kannettavassa. Yhdistä kuten tavallista, käynnistä tmux siellä ja aja editori tai migraatio sen sisällä. Irrota oletusetuliitteellä, ja istunto jatkaa toimintaansa, kun SSH-yhteys katoaa. tmux:n käynnistäminen paikallisesti suojaa kuortasi suljetulta ikkunalta, ei etäkomentoa kuolleelta tunnelilta.

ssh [email protected]
tmux new-session -s office-work

Kun VPN on taas käytössä, avaa uusi SSH-yhteys samaan koneeseen ja liity uudelleen nimen perusteella. Kestävä objekti on istunto, ei yhteys. Anna sille nimi, jonka vielä tunnistat viikon kuluttua.

tmux vastaan työn suorittaja

tmux pitää interaktiivisen prosessin elossa, kun kone on käynnissä. Työn suorittaja tai palvelunhallinta pitää ei-interaktiivisen työn elossa, kirjaa sen lopetustilan ja selviytyy SSH-istunnon täydellisestä päättymisestä. Ensimmäinen on työtä varten, jota seuraat; toinen työtä varten, jonka ajastat ja tarkistat myöhemmin.

Kumpikaan ei selviydy uudelleenkäynnistyksestä, ellei konetta ole määritetty palauttamaan sitä. tmux-istunto kuolee koneen mukana, ja tilapäinen työ kuolee käynnistyksen mukana, ellei sitä rekisteröity yksiköksi. Valitse sen mukaan, mitä työn on selvittävä.

Molemmat lähestymistavat tarvitsevat myös lokin, jonka voit lukea uudelleenyhdistämisen jälkeen. Ilman sitä tiedät prosessin olevan olemassa, mutta et sitä, mitä se on tehnyt. Kirjoita lokin polku istunnon nimen viereen.

Päätä sen mukaan, mikä on selvittävä

Päätä sen mukaan, mikä on pahinta, mitä voi tapahtua, jos työ pysähtyy puolivälissä. Editorin istunto menettää tallentamattomat puskurit, mikä on harmillista mutta palautettavissa. Migraatio, joka vahvistaa puolet muutoksistaan, ei ole, ja se puhuu kirjatun tuloksen omaavan suorittajan puolesta. Jos työ on interaktiivinen ja pitkä, tmux ja kirjoitettu loki riittävät yleensä.

systemd-run --user --unit=migrate-customers --collect ./migrate.sh

Mitä tahansa valitsetkin, tarkista kirjattu tulos ennen kuin ajat mitään uudelleen. Puuttuva viimeinen rivi kertoo, mitä kannettava näki, ei sitä, mitä palvelin vahvisti. Juuri tämä ero on syy pitää työ poissa yhteydestä alusta asti, ja irrottamisen ja uudelleenliittymisen malli on sen pienin versio.

Aiheeseen liittyvät artikkelit