GNU/Linux >> Belajar Linux >  >> Linux

Eksekusi Perintah SSH Hang, meskipun shell interaktif berfungsi dengan baik

Kami memperbaikinya dengan menambahkan -n (untuk mengalihkan std dari /dev/null) dan -t (memaksa alokasi pseudo-tty)

Contoh:

ssh -t -n [email protected] command

Masalahnya memang skrip login saya, meskipun tidak ada hubungannya dengan membutuhkan terminal (saya sudah menduga itu dan mengujinya dengan -t dan -T pilihan). Masalahnya adalah .bashrc saya sedang menjalankan exec (dalam hal ini ke zsh - karena sistem kami tidak mengizinkan chsh ke zsh ).

Garis yang menyinggung:

test -f /usr/bin/zsh && exec /usr/bin/zsh

Diselesaikan dengan terlebih dahulu memeriksa shell interaktif dan keluar jika demikian:

[ -z "$PS1" ] && return
test -f /usr/bin/zsh && exec /usr/bin/zsh

Jadi, intinya, karena shell mengeksekusi ke zsh , ssh sedang menunggu ini selesai - yang tidak pernah terjadi.

Saya agak bingung kenapa .bashrc saya sama sekali dipanggil - saya pikir ini hanya untuk shell interaktif, tetapi tujuan dan urutan yang tepat dari berbagai skrip init adalah sesuatu yang menurut saya tidak akan pernah saya pelajari.

Saya harap ini dapat bermanfaat bagi orang lain yang memiliki semacam exec dalam skrip startup mereka.

BTW - dua jawaban lainnya ada di jalur yang benar jadi saya sama sekali tidak yakin apakah saya harus 'menjawab' atau hanya mengomentari jawaban mereka. Jika menjawab pertanyaan saya sendiri salah secara moral di stackoverflow, beri tahu saya dan saya akan melakukan penyesalan. Terima kasih kepada penjawab lainnya.


Linux
  1. Script Shell Hang Pada Perintah Mail?

  2. Proses Dalam Sesi Dalam Shell Interaktif Vs Dalam Skrip?

  3. Cara menggunakan fungsi shell baris perintah di Linux

  1. Bagaimana Argumen Baris Perintah Jarak Jauh Ssh Diurai?

  2. Fungsi Dalam Variabel Shell?

  3. Perintah RPM hang

  1. Contoh Perintah chsh di Linux

  2. Melewati variabel dalam perintah ssh jarak jauh

  3. perintah openssl hang