安全なシェルセッション経由でリモートPostgresデータベースに接続するGUIアプリ(Gnucash)を実行しています。 SSH -Lコマンドを使用してローカルポートをトンネルし、Gnucashを個別に実行することができます。これは正常に機能します。
私がやりたいのは、トンネルを設定してからGnucashを呼び出す単一のシェルスクリプトを使用することです。それは可能ですか?もしそうなら、どうすればいいですか?現在、2つの個別のターミナルウィンドウで次のようなコマンドを実行しています。
ssh -L 5433:127.0.0.1:19097 [email protected] gnucash postgres:// gnucash @ localhost:5433/gnucash_db
単純に両方の行をシェルスクリプトに入れると、1行目はリモートシェルにドロップされ、2行目はリモートシェルを終了するまで実行されません。
TIA、ロブ・ヒルズ
ssh -fNT -L 5433:127.0.0.1:19097 [email protected]
を使用して、トンネルの確立後にsshに自動的にバックグラウンドを要求すると、スクリプトは次のコマンドに進むことができます。ターミナルを閉じてexit
プロセスを強制終了するssh
でスクリプトを終了することをお勧めします。それ以外の場合は、明示的に強制終了するか、サーバーがタイムアウトした場合に終了する必要があります。