telnet到一个windows机器上,当telnet退出怎么让程序继续运行?
好不容易调通了通过expect自动登录,也把程序起起来了,尼玛发现telnet一退出程序又关了!
是从一个linux server telnet到一个win xp的机器上,把一个程序起起来.怎样才能让这个程序不关呢,telnet退出后?
好不容易调通了通过expect自动登录,也把程序起起来了,尼玛发现telnet一退出程序又关了!
是从一个linux server telnet到一个win xp的机器上,把一个程序起起来.怎样才能让这个程序不关呢,telnet退出后?
两个办法,一个是screen,另一个是nohup。
ctrl + ac 创建一个新窗口; ctrl + ad 退出; ctrl + aa 两个窗口切换; screen -dr 进入上次退出的screen
你的命令如果在screen运行,你退出你的ssh或者telnet终端是不会导致你的程序退出的。
另外一个办法 nohup。nohup myprogram > foo.out 2> foo.err < /dev/null &。
本质上讲,要导致你的程序不退出,你需要把你的程序的三个流(stdin, stdout和stderr)和你的终端脱离关系。默认情况下,三个流都绑定在你登录的那个中断上,所以你的终端一退出,你的程序也退出了。screen是把你的程序的三个流绑定在screen上,所以screen接管了这个程序的三个流。nohup是让文件系统,或者是 /dev/null这个黑洞来接管你的程序的三个流。所以,这两种办法本质上都是妥善管理好你的程序的三个流,你的程序就不会退出了。