日期:2014-05-16  浏览次数:20774 次

如何让shell脚本在用户(普通权限)退出后仍然执行
大家好,我在家通过VPN连公司服务器测试程序,脚本需要执行较长时间,但是VPN老是断,一断我的脚本就退出了。现在我想让脚本执行之后退出服务器,让脚本继续执行,过一段时间之后再去看跑的结果。请问应该怎么做?在线等

------解决方案--------------------
我不是很明白你的意思.
你是不是说登录服务器后得到一个shell, 想在退出shell的情况下继续执行在shell中启动的脚本?
这样的话, 可以把脚本移到后台执行, 把输出重定向到一个文件.如:
./script.sh > log 2>&1 &
重新登录, 查看log的内容就可以了.
------解决方案--------------------
1. 放到后台执行(如1楼所说)
2. 使用nohup
nohup ./script > log 2>&1
3. 使用screen
我通常是用screen,可以保存session,断了也可以重新attach上去,非常好用。
------解决方案--------------------
后台或者nohup,都是为了在终端断开时避开SIGHUP信号。

用screen也是简单的办法。