shell脚本关闭窗口后进程仍然运行

关闭窗口后进程仍然运行
0.背景
昨晚抽取数据,新开了一个窗口运行shell脚本,但是shell脚本运行到一半的时候,xshell窗口关闭了,我天真的以为进程仍然在窗口继续运行,哪知道!我检测了很久的数据库,发现数据再也没有输入了。后来才知道原来窗口开的进程会随着这个窗口生或死。于是一亿多条数据在传输到8千万的时候断掉了。。。

1.问题
如何让在窗口中运行的进程,在窗口关闭之后,依然可以运行【即在后台保持运行?】

2.解决办法
在shell 脚本之后添加&。
 

 

我们经常会碰到一种情况,用ssh远程登录到linux服务器后,启动一个脚本跑任务,如果这个任务耗时比较久,就得等着,如果此时由于网络原因,ssh连接断了,再重新登录服务器,原来的任务就没了,得重新运行一次。有没有办法让任务切到后台,ssh退出后还能继续运行呢? 当然有~,而且很简单:

1. 在ssh shell中运行脚本,比如我运行一个批量下载脚本:

 python download-app-annie.py

2. 按下ctrl-z中断脚本运行,此时系统提示:

^Z
[1]+  Stopped                 python download-app-annie.py

意思是编号为1的任务挂起了,[1]就是任务的编号,里面的数字也可能是2,3,4..

3. 输入命令:bg 1

这个命令将1号任务切换到后台执行

4. 输入命令:disown -h %1

这个命令的意思是将1号任务从当前shell的任务列表中移除,并且忽略HUP信号,这样,即使当前Shell结束了,这个任务也不会被结束,而是继续留在后台执行。

我在阿里云服务器上挂了8个下载任务,一个晚上就从国外的一个app下载站拉了将近1500个apk,总共有47个G。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值