有个软件叫 screen 一般是Linux 发行版就预装的
比如我想运行python notebook 输入 screen -S "notebook"就会进入一个新的命令行界面 在里面运行 ipython notebook 后 按键盘 Ctrl-A Ctrl-D 就可以退回原来的命令行界面, 但是 notebook 仍然会继续运行.
输入 screen -r notebook 就又可以重新回到刚才的界面. 你只要不手动把 screen 关了, screen 里的进程就一直会运行, 哪怕关了 ssh 或者 telnet
具体使用请 google 一下
两个办法,一个是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这个黑洞来接管你的程序的三个流。所以,这两种办法本质上都是妥善管理好你的程序的三个流,你的程序就不会退出了。
谢谢楼上三位~ 不知道是不是连接到的机器是windows的缘故,试过了nohup &,不行 start也不行 session没有试,最后用的schtasks,这个命令可能是另外起一个独立的进程,所以不受影响。