Memindahkan Proses yang Sedang Berjalan ke Sesi tmux

Proses yang berjalan lama.

Meskipun hal ini jarang terjadi, tetapi terkadang masih terjadi juga saat saya lupa membuka tmux atau terminal multiplexer lain saat mengerjakan suatu proses yang seharusnya cepat selesai.

Namun, proses yang seharusnya cepat selesai itu ternyata berlangsung lebih lama dari yang saya perkirakan, dan muncul rasa takut akan koneksi SSH terputus dan semacamnya.

Jadi, solusi yang jelas adalah menghentikan proses dan menjalankannya di sesi tmux yang baru dibuat. Tetapi hal tersebut akan menghambat proses yang berjalan dan saya tidak ingin memulai masalah lain yang mungkin akan muncul saat proses dihentikan.

Bagaimana jika saya ingin proses tersebut tetap berjalan tetapi tidak ingin menghentikannya? Alih-alih mematikan dan menjalankan kembali sebuah proses, akan jauh lebih baik jika hanya memindahkannya ke sesi tmux.

Hal ini melibatkan perubahan induk dari sebuah proses, yang sebenarnya jika dilogika akan sangat sulit dicerna, tapi untungnya ada aplikasi yang dinamakan reptyr.

Adapun penggunaannya sangat mudah:

  1. Suspend proses yang sedang berjalan dengan Ctrl-Z
  2. Kirim job ke latar belakang menggunakan bg
  3. Hilangkan ownership dari shell menggunakan disown %1
  4. Mulai sesi tmux baru atau attach ke sesi yang sudah ada
  5. Jalankan reptyr PID untuk melampirkan proses ke shell saat ini

Untuk mencari PID, kamu bisa menggunakan jobs -l atau ps a | grep namaproses

Akhir kata, reptyr adalah aplikasi yang saya gunakan untuk mengambil program yang sedang berjalan dan memasangnya ke terminal baru.

Leave a Reply