GNU/Linux >> Linux の 問題 >  >> Linux

SSH コマンドの実行がハングするが、インタラクティブ シェルは正常に機能する

-n (std を /dev/null からリダイレクトする) と -t (疑似 tty 割り当てを強制する) を追加することで、これを修正しました

例:

ssh -t -n [email protected] command

問題は確かに私のログイン スクリプトにありましたが、端末が必要なこととは関係ありません (私はそれを疑って -t でテストしました)。 と -T オプション)。問題は、私の .bashrc exec を実行していました (この場合は zsh まで) - システムで chsh が許可されていないため zsh まで ).

問題のある行:

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

最初に対話型シェルをチェックし、そうであれば終了することで解決:

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

つまり、基本的に、シェルは zsh に実行していたためです 、 ssh これが終わるのを待っていました - それは決して起こりませんでした.

.bashrc の理由が少しわかりません はまったく呼び出されていませんでした - これは対話型シェル専用だと思っていましたが、さまざまな init スクリプトの正確な目的と順序は、私が学ぶことはないと思います.

これがある種の exec を持っている他の人に役立つことを願っています

ところで-他の2つの回答は正しい軌道に乗っていたので、「回答」する必要があるのか​​ 、回答にコメントするだけなのか完全にわかりませんでした。スタックオーバーフローで自分の質問に答えることが道徳的に間違っている場合は、お知らせください。悔い改めます。他の回答者に感謝します。


Linux
  1. Sshリモートコマンドライン引数はどのように解析されますか?

  2. Linux でコマンド ライン シェル関数を使用する方法

  3. SCP を許可するが、SSH を使用した実際のログインは許可しない

  1. シェルスクリプトがメールコマンドでハングアップしますか?

  2. シェル変数の関数?

  3. インタラクティブシェルのセッションのプロセスとスクリプトのプロセス?

  1. Linux での chsh コマンドの例

  2. リモート ssh コマンドで変数を渡す

  3. openssl コマンドがハングする