A reptyr egy hasznos eszköz minden Linux felhasználó számára, aki hosszú futású folyamatokkal dolgozik, és szeretné azokat biztonságosan kezelni még akkor is, ha a terminál váratlanul elérhetetlenné válik. Ha gyakran dolgozol távoli szervereken vagy kritikus folyamatokat futtatsz, érdemes megismerkedni ezzel az eszközzel!
Előfordult már veled, hogy egy fontos folyamat futott a terminálban, de valamilyen okból elveszítetted a hozzáférést? Például egy rendszerfrissítés (release upgrade) közben bekapcsolt a képernyővédő, és nem tudtad feloldani az ablakot? Vagy véletlenül bezártad az SSH kapcsolatot, de a folyamat még mindig fut a távoli gépen? Ilyenkor jöhet jól a reptyr, amely lehetővé teszi, hogy egy futó folyamatot áthelyezz egy új terminálba.
A reptyr egy eszköz, amely lehetővé teszi, hogy egy már futó folyamatot átvigyünk egy másik terminálba. A folyamatok általában egy adott terminálhoz kötődnek, és ha ez a terminál megszűnik vagy elveszítjük a hozzáférést, a folyamat irányítása problémássá válhat. A reptyr ezt a problémát oldja meg úgy, hogy megváltoztatja a célfolyamat vezérlő terminálját.
Számos helyzet létezik, amikor elveszítheted az aktív shellt:
Csatlakozz a szerverhez (ha szükséges):
ssh user@remote-server
Keress egy elveszett folyamatot:
Ha tudod, hogy melyik folyamathoz akarsz csatlakozni, használd a ps
vagy pgrep
parancsot a PID kiderítésére:
ps aux | grep <folyamat_neve>
vagy
pgrep -lf <folyamat_neve>
Indíts egy új terminált és futtasd a következő parancsot:
reptyr <PID>
ahol <PID>
a visszaszerezni kívánt folyamat azonosítója.
Engedélyezés szükség esetén:
Ha a reptyr hibát dob, előfordulhat, hogy engedélyezni kell a ptrace
használatát:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
linuxadm:~>apt install --print-uris reptyr
...
'http://hu.archive.ubuntu.com/ubuntu/pool/universe/r/reptyr/reptyr_0.9.0-1_amd64.deb' reptyr_0.9.0-1_amd64.deb 23668 MD5Sum:6000ade71b0b1c32a0bc76ec7389c6bb
linuxadm:~>wget http://hu.archive.ubuntu.com/ubuntu/pool/universe/r/reptyr/reptyr_0.9.0-1_amd64.deb
...
reptyr_0.9.0-1_amd64.deb 100%[==========================================>] 23.11K --.-KB/s in 0s
‘reptyr_0.9.0-1_amd64.deb’ saved [23668/23668]
* Deb kicsomagolása
```bash
linuxadm:~>dpkg --extract reptyr_0.9.0-1_amd64.deb .
linuxadm:~>ls -al usr/bin/reptyr
-rwxr-xr-x 1 root root 35304 Jun 16 2022 usr/bin/reptyr
A reptyr a ptrace rendszerhívást használja, amely lehetővé teszi számára, hogy egy másik folyamathoz csatlakozzon, és módosítsa annak állapotát. A működés lényege:
Ha előre szeretnél felkészülni hasonló helyzetekre, használhatod a tmux vagy screen programokat is, amelyek lehetővé teszik, hogy a shell-munkameneteket leválaszd és később újracsatlakozz hozzájuk. Ha viszont már elvesztetted a shellt, akkor a reptyr lehet a megmentőd.