GNU/Linux >> Belajar Linux >  >> Linux

Melakukan perintah yang berjalan lama di ssh

Solusi 1:

Cara terbaik adalah dengan menggunakan screen (di server) untuk memulai sesi untuk menjalankan perintah dan kemudian memutuskan layar agar tetap berjalan, dan Anda dapat melakukan hal lain, atau hanya memutuskan sambungan dari server. Pilihan lainnya adalah menggunakan nohup dikombinasikan dengan & jadi Anda akan memiliki nohup <command> &

Solusi 2:

Anda juga dapat menggunakan disown jika Anda sudah memulai proses tanpa screen atau nohup

Solusi 3:

Jawaban yang ada dapat bekerja dengan baik, tetapi saya memerlukan sesuatu untuk BusyBox (sebuah shell dan seperangkat alat untuk perangkat keras minimal seperti router rumahan). Sistem saya tidak memiliki screen , dtach , at , disown , atau bahkan nohup ! Jadi terima kasih kepada tbc0 di SO (tautan), saya menemukan permata ini. Ini segera kembali tetapi proses server terus berjalan:

ssh myserver 'sleep 100 >&- 2>&- <&- &'

Atau, jika diperlukan beberapa perintah:

ssh myserver '(echo one; sleep 100; echo two; sleep 200) >&- 2>&- <&- &'

Penjelasan:

  • >&- - tutup pegangan stdout
  • 2>&- - tutup stderr
  • <&- - tutup stdin
  • & - letakkan proses di latar belakang

Ini tidak menggunakan program eksternal dan harus bekerja di ksh, ash, Bourne shell, bash, dll.


Linux
  1. Cara Menemukan Koneksi SSH Aktif di Linux

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

  3. Ssh – Membatasi Pengguna Ssh/scp/sftp ke Direktori?

  1. Oring Dengan Benar Dalam Perintah Atas Ssh?

  2. Cara Menggunakan Perintah Layar Linux

  3. Melewati variabel dalam perintah ssh jarak jauh

  1. linux mengeksekusi perintah dari jarak jauh

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

  3. Perintah Linux untuk menunggu server SSH aktif