Saya meninggalkan kantor sebelumnya dengan jendela terminal aktif menjalankan skrip pada server Centos 7. Sekarang saya sudah SSHing dari rumah dan saya ingin melihat di mana itu harus. Apakah ini mungkin? Bisakah saya bergabung kembali dengan jendela terminal yang sama dari sini?
8
strace -e write -p 12345
(gantikan pid dari proses yang Anda minati). Pilihan lain adalah:strace -e read -p 12345
(gantikan pid dari terminal emulator). Pada prinsipnya adalah mungkin untuk menulis sebuah program untuk menggunakanptrace
system call untuk mengumpulkan informasi dengan cara yangstrace
sama, dan menulisnya langsung ke terminalnya sendiri. Saya tidak tahu apakah ada program seperti itu, tetapi itu akan mencakup persyaratan yang ditentukan dalam pertanyaan Anda.Jawaban:
Seperti yang disebutkan @Sven, opsi terbaik adalah menggunakan
screen
atautmux
. Ini adalah alat yang dikenal sebagai "terminal multiplexer". Mereka memungkinkan Anda untuk membuat sesi shell yang dapat dilampirkan dan dilepaskan dari login yang sebenarnya. Alat-alat ini tidak hanya berguna untuk memeriksa pekerjaan Anda dari terminal lain, tetapi memiliki fitur lain, termasuk berbagi sesi Anda dengan pengguna lain dan memastikan bahwa perintah Anda tidak berhenti jika Anda kehilangan koneksi internet Anda. Jika Anda mencariscreen
, Anda dapat mencoba mencari "Layar GNU". Kedua alat ini tersedia di sebagian besar sistem Linux.Biasanya, Anda akan memulai sesi, dan kemudian jalankan perintah Anda di dalam sesi itu. Namun, jika Anda sudah memulai perintah, Anda mungkin ingin mencari artikel tentang memindahkan perintah yang sedang berjalan ke sesi layar. Saya tidak akan merekomendasikan mencoba ini pertama kali pada sesuatu yang penting. Pertanyaan ini mungkin bermanfaat:
Memindahkan proses yang sudah berjalan ke Screen
Jika Anda hanya ingin memeriksa untuk melihat apakah prosesnya berjalan, alat favorit saya adalah strace. Alat ini memungkinkan Anda untuk melihat setiap panggilan kernel yang dilakukan oleh suatu proses. Butuh beberapa keterampilan untuk memahami output, tetapi setidaknya harus memberi Anda ide jika prosesnya berjalan, dan jika Anda menonton cukup dekat, mungkin menangkap nama file yang dibuka. Untuk melakukan itu, pertama-tama, cari PID, mungkin dengan mencari melalui
ps aux|grep yourcommand
, dan kemudian:Anda dapat ^ C untuk keluar dari itu. Mungkin tidak memungkinkan Anda untuk melampirkan kembali, tetapi jika Anda hanya ingin tahu apa yang dilakukannya, itu sudah cukup.
sumber
Salah satu cara untuk melakukannya: TMUX
Karena sebagian besar jawaban sudah ditunjukkan - jika dalam sesi SSH yang ada - Anda menggunakan
tmux
(atauscreen
) dengan perintahAnda sekarang berada dalam sesi bash baru, di mana Anda dapat memulai program / perintah Anda. Anda dapat menutupnya kapan saja (tetapi tidak dengan CTRL + D, dengan menutup jendela) dan kembali lagi nanti dengan membangun koneksi SSH ke pengguna yang sama di mesin yang sama dan menulis perintah
Anda juga dapat memiliki beberapa
tmux
sesi dengan memberi mereka namaAnda dapat melihat daftar semua
tmux
sesi terbuka untuk pengguna Andadan lampirkan ke
tmux
sesi bernama denganTemukan komprehensif di
tmux cheat sheet
sini .Untuk program yang sedang berjalan
Jawaban sejauh ini tampaknya tidak menyadari fakta bahwa Anda dapat memindahkan proses yang sudah berjalan ke yang lain
tmux
/screen
seperti jawaban ini tunjukkan. Program yang melakukan pekerjaan dipanggilreptyr
dan di bawah Ubuntu / Debian Anda dapat menginstalnya dengan sederhanaSetelah itu, cari tahu ID proses dari program Anda yang sedang berjalan (misalnya dengan
top
atauhtop
), memulaitmux
sesi dan sederhanaakan memasang kembali proses yang berjalan ke
tmux
sesi bash Anda .sumber
Di masa mendatang, Anda dapat menggunakan
screen
atautmux
dan kemudian dapat memasang kembali sesi lari.sumber
Saya telah menggunakan byobu dan saya merasa sangat kuat. Byobu adalah window manager berbasis sumber terbuka GPLv3 dan multiplexer terminal.
Jadi, Anda dapat membuka sesi byobu hanya dengan mengetik "byobu". Dan kemudian Anda dapat membuat tab baru dengan Ctrl + F2, dan berpindah antar tab dengan Ctrl + F3 untuk kembali, Ctrl + F4 untuk maju. Anda dapat menutup tab dengan Ctrl + F6 atau melepaskan dari sesi dengan Shift + F6. Anda kemudian melampirkan kembali sesi dengan cukup mengetik "byobu" lagi.
Byobu mendukung pemisahan vertikal dan horizontal, Layar penuh di antara fitur-fitur mewah lainnya. Ini tersedia di Ubuntu / Debian, CentOS / Fedora / RedHat dan FreeBSD.
sumber
tmux
danscreen
banyak yang menemukan memberikan pengalaman pengguna yang lebih baik daripada yang mereka lakukan di luar kotak.Seperti yang sudah ditunjukkan, saya sarankan menggunakan
tmux
atauscreen
di masa depan, tetapi itu hanya berfungsi jika Anda memikirkannya sebelumnya.Saya sudah dalam situasi Anda beberapa kali. Jika terminal yang Anda jalankan berjalan di PC desktop kantor Anda, Anda dapat SSH ke PC Anda dan memulai server VNC. Dengan begitu, Anda setidaknya dapat memeriksa terminal terbuka.
sumber
Seperti yang disebutkan semua orang, tmux dapat digunakan. layar tidak berguna di mana Anda ingin berbagi layar dengan banyak orang.
Di atas semua itu saya menyarankan semua orang untuk mencoba https://tmate.io/ untuk memberikan akses sementara, bahkan ke mesin lokal. tmate mendukung semua hal di atas :)
https://tmate.io/
sumber