Я запускаю приложение GUI (Gnucash), который соединяется с удаленной базой данных Postgres через безопасную сессию оболочки. Я могу использовать SSH-L команда, чтобы туннелировать локальный порт и затем отдельно выполнить Gnucash, и это хорошо работает.
То, что я хотел бы сделать, использовать единственный сценарий оболочки, который создает туннель и затем называет Gnucash. Это возможно? Если так, как я делаю это? В настоящее время я выполняю команды как следующее в 2 отдельных окнах терминала:
ssh-L 5433:127.0.0.1:19097 username@myserver.com.au gnucash postgres://gnucash@localhost:5433/gnucash_db
Если я просто поместил обе строки в сценарий оболочки, первая строка бросает меня в удаленную оболочку, и вторая строка не выполняется, пока я не выхожу из удаленной оболочки.
TIA, ограбьте выступы
Используйте ssh -fNT -L 5433:127.0.0.1:19097 username@myserver.com.au
для выяснения у ssh к автоматически фону после установления туннеля, и затем сценарий может переместиться в следующую команду. Я предлагаю, чтобы Вы закончили сценарий exit
, который закроет терминал и уничтожит эти ssh
процесс; иначе необходимо или явно уничтожить его, или это выйдет, если/когда сервер приведет к таймауту его.