免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9984 | 回复: 11
打印 上一主题 下一主题

telnet登陆远程主机后, 如何退出? 围城啊 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-19 20:07 |只看该作者 |倒序浏览
我想实现的大约是这样的:
1. 在按GUI上的"开始"键后运行脚本登陆远程主机。脚本我是这样写的:
            (
            sleep 2;
            echo "username";
            sleep 1;
            echo "password";
            sleep 1;
            echo "command";
            i=1
            while [ $i -le 10 ]
            do
            sleep 10
           done
            ) | telnet   xxx.xxx.xxx.xxx
由于需要在远程主机上持续读数据,所以用了一个死循环。

2. 在按GUI上的"退出"键后, 我的程序却不能完全终止。查了很久,发现问题应该出在那个死循环上。
循环不中止,程序就一直挂在远程主机上,造成程序退出(但未完全终止)后,无法再次登陆远程主机。
请问各位大侠,有什么解决方案啊?sigh,我的电脑里没有expect:em11:

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2008-05-20 08:19 |只看该作者
你那是本地循环,直接kill 了telnet进程不就行了

论坛徽章:
0
3 [报告]
发表于 2008-05-20 09:33 |只看该作者
你可以按CTRL+]退出,不过有些是还要加一个CTRL+D的,你自己测试一下就行了。
CTRL+D的输入方法是CTRL+V,然后再CTRL+D。

论坛徽章:
0
4 [报告]
发表于 2008-05-21 23:14 |只看该作者
多谢楼上的两位了!但是能不能说的再详细些呢?
to 二搂: 是不是有可以直接kill进程的命令啊?或是还要写一个kill脚本?
to 三楼:  ...是不是也写一个脚本?可是我该如何在脚本中指定telnet进程?
此外,我想在循环体中加判断条件,是否可行呢?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
5 [报告]
发表于 2008-05-22 09:44 |只看该作者
(
            sleep 2;
            echo "username";
            sleep 1;
            echo "password";
            sleep 1;
            echo "nohup command &";
            sleep 1;
            echo exit
            sleep 1;
            
            ) | telnet   xxx.xxx.xxx.xxx

论坛徽章:
0
6 [报告]
发表于 2008-05-23 18:44 |只看该作者
(
sleep 2;
echo "username";
sleep 1;
echo "password";
sleep 1;
echo "nohup ./start &";
sleep 1;
echo exit
sleep 1;
) | telnet  xxx.xxx.xxx.xxx
如上,我在nohup后调用了远程主机根目录中的另一个脚本,但是运行时却提示
# nohup ./start &
# -sh: nohup: not found
exit
可我直接在远程主机上运行时是没问题的。

论坛徽章:
0
7 [报告]
发表于 2008-05-23 19:46 |只看该作者
while do sleep 10
why not sleep 1000000?
no nohup ..
how about screen ?

论坛徽章:
0
8 [报告]
发表于 2008-05-23 23:26 |只看该作者
如果允许保持连接状态
执行command;logout

论坛徽章:
0
9 [报告]
发表于 2008-05-26 14:59 |只看该作者
原帖由 r2r4 于 2008-5-23 23:26 发表
如果允许保持连接状态
执行command;logout

问题就是不能保持连接状态。否则退出程序后再次运行时,网络就会提示被占用,不能初始化。

论坛徽章:
0
10 [报告]
发表于 2008-05-27 00:40 |只看该作者
我靠!给他装个nohup,不给装就自己写个daemon,不让写就让他自己搞去
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP