Когда я выполняю команду (например: 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
чтобы исправить это навсегда.