Ssh
當命令返回不同於 0 的退出狀態時,SSH 連接自動關閉
當我在我的 VPS 伺服器上執行返回非 0 退出狀態的命令(例如:grep、cat、…)時,我的 SSH 連接會自動關閉。我不知道這個問題可能涉及什麼……
您是否已經嘗試過此類問題?有什麼建議嗎?
特此對該問題進行展示:
- 我從我的電腦連接到我的 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)我創建了一個從第一個參數獲取退出狀態的腳本:
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
- 當退出狀態為 0時,保持 SSH 連接:
myuser@vps-server:~$ /tmp/test-exit-status.sh 0 Exit status will be '0'. myuser@vps-server:~$
4)當退出狀態為NOT 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
(或刪除 aset -e
)~/.bashrc
以永久修復它。