Назад | Перейти на главную страницу

Соединение SSH автоматически закрывается, когда команда возвращает статус выхода, отличный от 0

Когда я выполняю команду (например: grep, cat, ...) на моем VPS-сервере, которая возвращает статус выхода, отличный от 0, мое SSH-соединение автоматически закрывается. Понятия не имею, в чем может заключаться эта проблема ...

Вы уже сталкивались с подобными проблемами? Любое предложение?


Настоящая демонстрация этой проблемы:

1) Я подключаюсь к своему VPS-серверу со своего компьютера: sylvain @ mycompute

sylvain@mycomputer:~$ ssh myuser@vps-server
Last login: Sat Sep  9 17:02:30 2017 from 11.22.33.44
myuser@vps-server:~$ 

2) Я создаю скрипт, который получает статус выхода из 1-го параметра:

myuser@vps-server:~$ chmod u+x /tmp/test-exit-status.sh 
myuser@vps-server:~$ cat /tmp/test-exit-status.sh
#!/bin/bash

echo "Exit status will be '$1'."
exit $1

3) При выходе из статуса 0, соединение SSH сохраняется:

myuser@vps-server:~$ /tmp/test-exit-status.sh 0
Exit status will be '0'.
myuser@vps-server:~$ 

4) При выходе из статуса НЕ 0 (например, 56) соединение SSH автоматически закрывается, и на моем компьютере статус выхода команды SSH является статусом выхода сценария:

myuser@vps-server:~$ /tmp/test-exit-status.sh 56
Exit status will be '56'.
Connection to vps-server closed.

sylvain@mycomputer:~$ echo $?
56

Похоже, у вас есть set -e в твоем ~/.bashrc

Попробуйте сделать set +e и повторно запустите тест, чтобы убедиться, что он снова делает то же самое.

Я бы рассмотрел возможность добавления явно set +e (или удаление set -e) в твоем ~/.bashrc чтобы исправить это навсегда.