web-dev-qa-db-ja.com

永続的なssh接続を使用したbashスクリプト

実行するbashスクリプトを使用します

/usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 [email protected]

ただし、bashスクリプトを実行すると、待機します。接続は確立されますが、スクリプトは終了しません。手動で強制終了すると、bashスクリプトは次のように終了するため、SSHプロセスが終了するのを待っているようです。上手。

これを解決する方法はありますか?

PDATE:私はこのスクリプトをcronしました..そしてcronプロセスはゾンビになるものです..実際のスクリプトは問題なく実行されます。申し訳ありませんが、ps-auxfを使用すると次のようになります。

root       597  0.0  0.7   2372   912 ?        Ss   Jul12   0:00 cron
root      2595  0.0  0.8   2552  1064 ?        S    02:09   0:00  \_ CRON
1001      2597  0.0  0.0      0     0 ?        Zs   02:09   0:00      \_ [sh] <defunct>
1001      2603  0.0  0.0      0     0 ?        Z    02:09   0:00      \_ [cron] <defunct>

そして、私がsshを殺すと、機能しなくなったものが消えます。なぜそれらは機能しなくなるのでしょうか?

3
grandnasty

autossh (apt-get install autossh)のビットを再実装しようとしているようです。

パスフレーズなしでRSA鍵ペアを作成し、serveradmin @ 34.324.234.23に公開鍵をインストールして、以下を試してください。

autossh -f -N -L8888:127.0.0.1:3306 [email protected]
8
Eduardo Ivanec

ターミナルからsshプロセスを切り離します:

  1. バックグラウンドに送信する

    /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23 &

  2. Nohup it

    Nohup /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23

0
Kristaps

$を削除します。

workstation:~$ /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 server.Host.com
DSA Host key for IP address '205.205.219.5' not in list of known hosts.
workstation:~$ ps x | grep '\-f'
16170 ?        S      0:00 /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 server.Host.com

あなたが私のために詳述するとき、それは背景にまっすぐに行きます。ただし、テストサーバーには keypair セットアップがあります。

ローカルサーバーで8888をリッスンしているものはすでにありますか?バックグラウンドですでにインスタンスがありますか?

0
Warner