GNU/Linux >> Belajar Linux >  >> Linux

4 Cara Agar Perintah Tetap Berjalan Setelah Anda Keluar Dari Sesi SSH

Katakanlah Anda mengakses sistem lain dari jarak jauh melalui SSH. Anda ingin menjalankan perintah yang membutuhkan waktu lama untuk diselesaikan dan kemudian keluar dari sesi SSH tetapi biarkan perintah tetap berjalan meskipun Anda tidak lagi terhubung dengan sistem jarak jauh. Bagaimana kamu melakukannya? Seperti yang Anda ketahui, setelah Anda keluar dari SSH, semua pekerjaan yang sedang berjalan akan dihentikan. Apakah Anda akan memulai pekerjaan dari awal? Anda tidak harus. Di sini saya telah memberikan 4 metode untuk menjaga agar perintah tetap berjalan setelah Anda keluar dari sesi ssh. Baca terus.

Tetap Jalankan Perintah Setelah Anda Keluar Dari Sesi SSH Di Linux

Mungkin ada banyak cara untuk melakukan ini. Namun, menurut saya metode berikut ini mudah dan mudah.

Metode 1 - Menggunakan layar

Layar alat, pengelola jendela layar penuh dengan emulasi terminal VT100/ANSI, memungkinkan Anda melepaskan diri dari sesi SSH dengan aman tanpa keluar dari pekerjaan jarak jauh. Ini akan sangat membantu bagi mereka yang bekerja dengan beberapa server jarak jauh. Perintah layar sudah diinstal sebelumnya di sebagian besar sistem operasi Linux. Untuk berjaga-jaga, jika tidak diinstal, Anda dapat menginstalnya menggunakan manajer paket distribusi Anda.

Di Arch Linux dan turunannya:

$ sudo pacman -S screen

Pada RHEL, CentOS, dan sistem berbasis RPM lainnya:

$ sudo yum install screen

Di Debian, Ubuntu, dan sistem berbasis DEB lainnya:

$ sudo apt-get install screen

Di SUSE/OpenSUSE:

$ sudo zypper install screen

Setelah memasang layar pada sistem jarak jauh Anda, mulai sesi layar:

$ screen

Sesi layar telah dimulai sekarang. Sekarang jalankan pekerjaan atau tugas apa pun yang ingin Anda lakukan di sistem jarak jauh Anda.

Saya akan mengunduh gambar Ubuntu 16.04:

$ wget http://mirror.waia.asn.au/ubuntu-releases/xenial/ubuntu-16.04.2-desktop-amd64.iso

Ubuntu 16.04 ISO berukuran sekitar 1,5GB. Ini akan memakan waktu hampir satu jam untuk men-download dalam koneksi broadband normal. Anda tidak perlu menunggu selama itu. Biarkan proses pengunduhan berjalan di sistem jarak jauh dan keluar dari sesi layar dengan menekan “Ctrl-A” diikuti oleh “d“ . Anda akan melihat output seperti di bawah ini.

[detached from 1365.pts-0.server]

Setelah melepaskan diri dari sesi layar, Anda dapat keluar dari sistem jarak jauh. Pekerjaan jarak jauh akan tetap berjalan di server.

Anda dapat melampirkan kembali ke sesi layar kapan saja menggunakan perintah:

$ screen -r

Anda akan melihat bahwa proses masih berjalan di sana.

Jika Anda memiliki lebih dari satu sesi layar, Anda perlu mengetikkan ID sesi layar untuk melampirkannya kembali. Untuk melihat jumlah sesi layar, jalankan:

$ screen -ls

Contoh keluarannya adalah:

There are screens on:There are screens on: 
     1382.pts-0.server (Saturday 15 July 2017 04:39:51  IST) (Detached) 
     1365.pts-0.server (Saturday 15 July 2017 04:38:44  IST) (Detached)
2 Sockets in /var/run/screen/S-sk.

Sekarang, pasang kembali ke sesi layar yang diinginkan, katakan 1382 , jalankan:

$ screen -r 1382

Untuk detail lebih lanjut, lihat halaman manual.

$ man screen
Unduhan yang Disarankan - Lembar Cheat Gratis:"Lembar Cheat Baris Perintah Linux"

Metode 2 - Menggunakan tmux

tmux adalah multiplexer terminal yang memungkinkan sejumlah terminal dibuat, diakses, dan dikendalikan dari satu layar. Sesi tmux dapat dilepaskan dari layar dan terus berjalan di latar belakang, lalu disambungkan kembali. Seperti alat Layar, Anda juga dapat menggunakan tmux untuk melepaskan dari sesi SSH tanpa keluar dari pekerjaan jarak jauh. Perintah Tmux sudah diinstal sebelumnya di sebagian besar sistem operasi Linux. Untuk berjaga-jaga, jika tidak diinstal, Anda dapat menginstalnya menggunakan manajer paket distribusi Anda.

Di Arch Linux dan turunannya:

$ sudo pacman -S tmux

Pada RHEL, CentOS, dan sistem berbasis RPM lainnya:

$ sudo yum install tmux

Di Debian, Ubuntu, dan sistem berbasis DEB lainnya:

$ sudo apt-get install tmux

Di SUSE/OpenSUSE:

$ sudo zypper install tmux

Setelah menginstal tmux, mulai sesi tmux menggunakan perintah:

$ tmux

Sekarang, mulailah tugas atau pekerjaan Anda. Kemudian lepaskan dengan aman dari sesi tmux tanpa keluar dari pekerjaan jarak jauh dengan menekan "CTRL-b" diikuti oleh "d" . Ini akan melepaskan sesi tmux Anda tetapi akan membuat Anda melakukan sesi yang berjalan di latar belakang. Itu berarti semua remote akan berjalan meskipun Anda terputus dari sesi.

Untuk membuat daftar sesi yang tersedia, jalankan:

$ tmux ls
0: 1 windows (created Sat Jul 15 16:51:35 2017) [134x33]
1: 1 windows (created Sat Jul 15 16:53:58 2017) [134x33]

Anda dapat melampirkan kembali ke sesi tmux menggunakan ID sesi masing-masing seperti yang ditunjukkan di bawah ini:

$ tmux attach -t 0

Untuk detail lebih lanjut, lihat halaman manual.

$ man tmux

Metode 3 - Menggunakan Reptyr

Bagaimana jika Anda lupa memulai perintah di screen/tmux? Jangan khawatir. Di sinilah Reptir datang membantu. Reptyr membantu Anda untuk memindahkan proses yang sedang berjalan di antara ptys. Kami telah menerbitkan panduan terperinci tentang Reptyr. Lihat tautan berikut.

  • Reptyr – Memindahkan Proses yang Berjalan Dari Satu Terminal Ke Terminal Lain Tanpa Menutupnya

Metode 4 - Menggunakan nohup

tidak apa-apa , singkatan dari Tidak h naiknaik , adalah utilitas baris perintah lain untuk membantu Anda menjalankan perintah Linux bahkan setelah Anda terputus dari sesi SSH. Karena ini adalah bagian dari GNU coreutils, Anda tidak perlu menginstalnya. Itu sudah diinstal sebelumnya di semua distribusi Linux.

Penggunaannya sangat mudah. Setelah masuk ke sistem jarak jauh Anda, yang harus Anda lakukan adalah:

$ nohup <command> &

Ya, sesederhana itu.

Contoh:

$ nohup wget http://mirror.waia.asn.au/ubuntu-releases/xenial/ubuntu-16.04.2-desktop-amd64.iso &

Sekarang, Anda dapat keluar dari sesi SSH. Pekerjaan jarak jauh akan tetap berjalan.

Masuk ke sistem jarak jauh dan jalankan perintah berikut untuk melihat daftar pekerjaan yang sedang berjalan.

$ jobs -l
[1]+ 1421 Running nohup wget http://mirror.waia.asn.au/ubuntu-releases/xenial/ubuntu-16.04.2-desktop-amd64.iso &

Secara default, output akan ditambahkan ke 'nohup.out'. Anda tentu saja dapat mengubah file keluaran.

Ini contoh lain.

$ nohup find -size +10M > log.txt &

Perintah di atas akan menemukan file dengan ukuran lebih besar dari 10M dan menulis output ke file log.txt.

Untuk detail lebih lanjut, lihat halaman manual.

$ man nohup

Dan, itu saja untuk saat ini. Memiliki sesuatu dalam pikiran? Jangan ragu untuk memberi tahu saya di bagian komentar di bawah. Lebih banyak barang bagus akan datang. Kunjungi terus!

Semangat!


Linux
  1. 5 Cara untuk Menjaga Sesi dan Proses SSH Jarak Jauh Berjalan Setelah Terputus

  2. 4 tips untuk membantu Anda mendapatkan hasil maksimal dari perintah df Linux

  3. Ssh – Bagaimana Cara Membuat Proses yang Saya Mulai Selama Sesi Ssh Berjalan Setelah Sesi Berakhir??

  1. SSH - Cara memasukkan perintah -t di file ~/.ssh/config

  2. Lanjutkan perintah yang berjalan di sesi SSH yang dijatuhkan

  3. Melakukan perintah yang berjalan lama di ssh

  1. Ssh – Biarkan Proses Tetap Berjalan Setelah Sesi Ssh Terputus?

  2. Tetap Menjalankan Program Python Bahkan Setelah Keluar dari Sesi Ssh?

  3. Bagaimana Agar Perintah yang Saya Mulai Dari Shell Berjalan Jika Saya Keluar Dari Shell?