LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1054|回复: 6

linux下如何远程登录启动某个需要长时间运行的任务?

[复制链接]
发表于 2005-10-20 23:07:41 | 显示全部楼层 |阅读模式
需要在很多台机器上运行某个计算程序。希望使用脚本完成远程登录并运行。
但是使用如下脚本
ssh hostname -n "nohup command &"
发现即使使用了nohup和后台运行,ssh还是被阻塞,造成改脚本无法启动。

请问ssh,rsh之类的命令,需要远程登录执行一个长时间运行的程序时,如果才能不被阻塞,直接返回?
发表于 2005-10-21 00:24:43 | 显示全部楼层
不太明白,不过如果要远程启动可以自己用cron定时启动,如果要结果可以作个日志,想用ssh启动而且网络不被阻塞好像得提高你的网络性能才行了。。这不是软件可以解决的
回复 支持 反对

使用道具 举报

发表于 2005-10-21 11:36:45 | 显示全部楼层
试试在ssh语句后面加 sleep
回复 支持 反对

使用道具 举报

发表于 2005-10-21 11:44:53 | 显示全部楼层
试试screen,不需要保持ssh连接,不知道我理解的对不对?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-21 12:57:12 | 显示全部楼层
to royce :
        我不是需要定时启动,而是运行某个程序。我指的阻塞不是网络原因。我的意思是,我使用ssh启动远程机器的程序,那个程序不执行完,ssh就没法返回。这样我的脚本就没法继续执行下去启动其他机器的程序了。
to ilikeqdi :
        sleep不是休眠一段时间吗?有什么用?
to calmpurp :
         对,我的意思就是不需要保持ssh连接,但是我不是很明白screen有什么用,应该怎么用。



我现在有一个临时的解决方法,就是把ssh放在后台。
ssh hostname -n "command" &
这样虽然ssh没有返回,但是其在后台,脚本能继续运行下去。但是执行脚本的机器上一下子就多了上百个ssh的进程(有一百多台计算机)。

不知道有什么其他方法或者更好的方法。
回复 支持 反对

使用道具 举报

发表于 2005-10-21 13:18:01 | 显示全部楼层
你的意思你运行的脚本程序是ssh的子进程,所以ssh在程序执行完之前不能退出?
不知道是不是有什么命令将程序以守护进程执行?不再依赖于ssh,就象wget一样。
回复 支持 反对

使用道具 举报

发表于 2005-10-21 17:27:49 | 显示全部楼层
screen的用法你可以在论坛找找,我想应该能满足你的要求。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表