Saya telah terhubung ke server melalui SSH dan masuk ke mysql, dan memintanya untuk menjalankan kueri (hasil yang dibuang ke CSV) yang bisa memakan waktu lebih dari satu jam. Meskipun saya telah menginstruksikan klien saya untuk mengirim paket nol setiap 60 detik untuk menjaga sesi tetap aktif, saya masih paranoid bahwa permintaan / proses mysql dapat diakhiri, jadi pertanyaan saya adalah:
- Apakah sesi ssh yang dibatalkan (karena tidak aktif) akan mematikan proses permintaan mysql?
- Bagaimana saya bisa memastikan ini tidak terjadi - apakah paket nol mengirim cukup setiap 60 detik?
nohup
ketika masuk ke mysql, ini akan tetap ada kueri yang berjalan di dalam?nohup
tidak akan banyak berguna bagi Anda, karena REPL mysql tidak akan terpasang ke terminal. Coba gunakan salah satu multiplexer (atau dtach) yang saya sebutkan di atas, mereka mungkin akan lebih sesuai dengan kebutuhan Anda.Saya sudah mulai menjalankan
screen
sesi ketika saya memasukkan ke dalam kotak, sebagian untuk mencegah itu dan sebagai bonus tambahan, saya mendapatkan banyak tab, tidak bisa mengalahkannya. Jika saya terputus karena beberapa alasan, saya dapat menyambung kembali ke sesi layar saya.Memperbarui
Untuk menjawab # 2, saya akan lari
mysql
dari dalam bash shell melalui sesi layar. Kedengarannya rumit, tapi itu hanya:Anda dapat mengedit file ~ / .screenrc Anda untuk menambahkan teks di bagian bawah sesi layar sehingga Anda dapat melacak tab Anda, mengganti nama tab Anda, dll. Jika Anda pernah terputus, ketika Anda terhubung kembali cukup jalankan
dan itu akan menunjukkan sesi terpisah. Untuk memasang kembali, cukup jalankan sesuatu seperti
Atau apa pun id sesi layar itu. Anda segera kembali ke tempat Anda tinggalkan. Anda harus menjalankan
screen -d
sebagai pengguna yang sama yang memulai sesi layar, hanya fyi, atau root saja. Saya tidak begitu yakin karena setelah saya ssh saya selalusudo su -
jadi saya tidak perlu sudo setiap perintah.sumber
screen
suara, itu tidak langsung menjawab dua pertanyaan yang tercantum oleh OP.