Sesi SSH mati bersama VPN: tmux atau pelari tugas?
Tunnel yang tersambung ulang tidak menghidupkan lagi soket SSH lama. Putuskan apakah pekerjaan butuh sesi terminal yang Anda sambungkan ulang atau tugas dengan hasil tercatat.
Indikator VPN Anda berubah hijau, rutenya kembali, dan jendela SSH yang Anda biarkan terbuka tidak pernah lagi mengembalikan prompt. Memulihkan rute tidak memulihkan percakapan TCP yang memakainya, jadi semua yang diketik ke jendela itu sudah hilang. Jika kekhawatiran sebenarnya adalah buffer editor atau migrasi panjang, solusinya adalah berhenti mengikat pekerjaan itu ke satu koneksi. tmux dan pelari tugas menyelesaikan dua bagian berbeda dari masalah itu.
VPN yang tersambung ulang tidak melanjutkan soket
TCP tidak mengenal gagasan melanjutkan setelah perubahan alamat. Koneksi SSH dikenali oleh kedua ujungnya, dan ketika tunnel dibangun ulang, alamat lokal bisa berubah dan soket lama mati. Server menyadarinya pada akhirnya, tetapi terminal Anda menyadarinya seketika.
Keepalive sisi klien mendeteksi rekan yang mati lebih cepat. Itu tidak mengembalikan sesi, dan tidak dapat memulihkan perintah yang sudah berjalan. Keepalive adalah pendeteksi, bukan alat pemulihan. Itu tidak mengatakan apa pun tentang apakah perintah jarak jauh itu bertahan.
Taruh pekerjaan di host jarak jauh
Buat sesi di host jarak jauh, bukan di laptop. Hubungkan seperti biasa, jalankan tmux di sana, dan jalankan editor atau migrasi di dalamnya. Lepaskan dengan prefiks bawaan dan sesi tetap berjalan saat koneksi SSH menghilang. Menjalankan tmux secara lokal melindungi shell Anda dari jendela yang tertutup, bukan perintah jarak jauh dari tunnel yang mati.
ssh [email protected]
tmux new-session -s office-workSetelah VPN kembali, buka koneksi SSH baru ke host yang sama dan sambungkan ulang berdasarkan nama. Objek yang tahan lama adalah sesi, bukan koneksi. Beri nama yang masih Anda kenali seminggu kemudian.
tmux versus pelari tugas
tmux menjaga proses interaktif tetap hidup selama host menyala. Pelari tugas atau manajer layanan menjaga tugas non-interaktif tetap hidup, mencatat status keluarnya, dan bertahan saat sesi SSH berakhir sepenuhnya. Yang pertama untuk pekerjaan yang Anda tonton; yang kedua untuk pekerjaan yang Anda jadwalkan dan periksa nanti.
Keduanya tidak bertahan dari reboot kecuali host dikonfigurasi untuk memulihkannya. Sesi tmux mati bersama mesin, dan tugas sementara mati bersama booting kecuali didaftarkan sebagai unit. Pilih menurut apa yang harus dilampaui pekerjaan itu.
Kedua pendekatan juga butuh log yang dapat Anda baca setelah menyambung ulang. Tanpanya Anda tahu prosesnya ada, tetapi tidak apa yang sudah dilakukannya. Catat jalur log di samping nama sesi.
Putuskan berdasarkan apa yang harus bertahan
Putuskan berdasarkan hal terburuk yang bisa terjadi jika pekerjaan berhenti di tengah jalan. Sesi editor kehilangan buffer yang belum disimpan, yang menjengkelkan tetapi dapat dipulihkan. Migrasi yang menetapkan separuh perubahannya tidak demikian, dan itu mendukung pelari dengan hasil tercatat. Jika tugasnya interaktif dan panjang, tmux plus log tertulis biasanya cukup.
systemd-run --user --unit=migrate-customers --collect ./migrate.shApa pun yang Anda pilih, periksa hasil tercatat sebelum menjalankan apa pun lagi. Baris terakhir yang hilang memberi tahu Anda apa yang dilihat laptop, bukan apa yang ditetapkan server. Perbedaan itulah alasan menjaga pekerjaan di luar koneksi sejak awal, dan model melepas dan menyambung ulang adalah versi terkecilnya.