我有一个 ubuntu web 服务器,它使用 chron 作业连接到第三方 sftp,提取文件并断开连接。它已经运行了几个星期,现在已经停止了。
我尝试从我的网络服务器手动通过 SSH 进入 sftp,但出现以下错误:
通道 0 上的 shell 请求失败
这让我https://stackoverflow.com/questions/27021641/how-to-fix-request-failed-on-channel-0
这给了我 lsof /dev/pts/* 来查看我打开了哪些文件
sudo lsof /dev/pts/*
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1513 ubuntu 0u CHR 136,0 0t0 3 /dev/pts/0
bash 1513 ubuntu 1u CHR 136,0 0t0 3 /dev/pts/0
bash 1513 ubuntu 2u CHR 136,0 0t0 3 /dev/pts/0
bash 1513 ubuntu 255u CHR 136,0 0t0 3 /dev/pts/0
sudo 1670 root 0u CHR 136,0 0t0 3 /dev/pts/0
sudo 1670 root 1u CHR 136,0 0t0 3 /dev/pts/0
sudo 1670 root 2u CHR 136,0 0t0 3 /dev/pts/0
lsof 1671 root 0u CHR 136,0 0t0 3 /dev/pts/0
lsof 1671 root 1u CHR 136,0 0t0 3 /dev/pts/0
lsof 1671 root 2u CHR 136,0 0t0 3 /dev/pts/0
如果我理解正确的话,我的脚本中打开了 255 个伪终端实例。如果我没有完全理解错的话,我有两个问题。一是我需要关闭它们,这样我的代码才能再次运行;二是我需要修复我的代码,以便正确关闭它们。