Я использую сценарий bash, который запускает
/usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@34.324.234.23
Однако, когда я запускаю сценарий bash, он ждет ... Я вижу, что соединение устанавливается, но сценарий не завершается ... это похоже на ожидание завершения процесса SSH, потому что, когда я вручную его убиваю, сценарий bash завершается как хорошо.
Есть идеи, как это решить?
ОБНОВИТЬ: Я записал этот скрипт ... и процесс 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, несуществующие исчезают .. почему они перестают существовать?
Похоже, вы пытаетесь заново реализовать автосш (apt-get install autossh).
Создайте пару ключей RSA без ключевой фразы, установите открытый ключ на serveradmin@34.324.234.23 и попробуйте:
autossh -f -N -L8888:127.0.0.1:3306 serveradmin@34.324.234.23
Отсоединить ssh
процесс с вашего терминала:
Отправить в фон
/usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23 &
Нет, это
nohup /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23
Удалить $
.
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
Это идет прямо на задний план, когда вы меняете детали. У меня есть пара ключей однако на моем тестовом сервере.
У вас уже есть что-то, что слушает 8888 на вашем локальном сервере? У вас уже есть экземпляр в фоновом режиме?