BashでSSHFS接続スクリプトを実行すると、すべてがうまく機能します。
ただし、ユーティリティを使用して同じスクリプトを実行すると、expect
フォルダのインストール場所にアクセスしようとすると、次のエラーが発生します。
Transport endpoint is not connected
これは私の予想されるスクリプトです。
#!/usr/bin/expect -f
spawn standard_sshfs_connection_string_or_script
expect "password: "
send "my_password\r"
尋ねる:どんなアイデアがありますか?
メモ:
- 私は初めて次のように電話しました。
fusermount -u mount_location
- 新しいプロセスの作成に問題がありますか
spawn
? sshfsプロセスが早期に終了することはできますか? (sshfsプロセスが開いていることを確認する方法はありますか?)
答え1
sshfs
出力がキャプチャされたかどうかはわかりませんexpect
。これがあなたの問題かもしれません。スクリプトがパスワードを送信せずに終了し、説明する問題が発生します。
別の可能なシナリオは、出力がsshfs
実際にあなたに送信されているのにuser@domain password:
期待が気に入らないかもしれないということです。
しかし、これは実際に問題を解決する良い方法ではありません。あなたのパスワードはこのスクリプトでプレーンテキストで表示されます!
公開鍵認証の使用を検討しましたか?見てこの子の例どのように動作するかわからない場合。
答え2
まだ試していませんが、send
コマンドの後に次の行を追加する必要があるかもしれません。
expect "$ "
プログラムが完全に終了するのを待ちます。
もう1つのアイデア:シャットダウン/クローズを期待すると、すべてのサブプロセスもシャットダウンできますか?