一部の Unix コマンドが Python の Paramiko Exec_Command で「not found」エラーを返すのはなぜですか?

DDD
リリース: 2024-10-21 06:57:02
オリジナル
355 人が閲覧しました

Why Do Some Unix Commands Return

Python の Paramiko の Unix コマンドで「not found」エラーが発生する

Python の Paramiko を使用して Unix サーバー上でコマンド 'sesu' を実行しようとするとParamiko exec_command を実行すると、「sh: sesu: not found」というエラー メッセージが表示される場合があります。この問題は、「sesu」などの特定のコマンドでのみ発生しますが、「ls」などの他のコマンドは意図したとおりに機能します。

このエラーは、SSHClient.exec_command のデフォルトの動作に起因し、シェルは「ログイン」モードで動作し、擬似端末は割り当てられません。したがって、コマンドの実行は、特定の起動スクリプトや環境変数が取得または使用される対話型 SSH セッションとは異なる場合があります。

考えられる解決策

次の解決策が推奨されます。優先順位:

  • 実行可能ファイルへのフルパスを指定するようにコマンドを変更します:
/bin/sesu test
ログイン後にコピー
  • 一貫して PATH を設定するように起動スクリプトを構成します:
  • ログイン シェル経由でコマンドを明示的に実行します:
bash --login -c "sesu test"
ログイン後にコピー
  • コマンド自体内の環境を変更します:
PATH="$PATH;/path/to/sesu" && sesu test
ログイン後にコピー
  • 最後の手段 (推奨されません):
stdin,stdout,stderr = ssh.exec_command('sesu test', get_pty=True)
ログイン後にコピー

以上が一部の Unix コマンドが Python の Paramiko Exec_Command で「not found」エラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!