操作系统任务前后台切换
启动系统任务
scp /home/back_20220722.tar.gz root@192.168.0.21:/root/bak
程序日志一直在前台输出,并且xshell连接一旦断开.那么scp就会从0开始重新拷贝
操作系统任务命令集合
输入ctrl+z暂停程序
暂停程序不是终止(ctrl+c)程序
暂停程序可以恢复,终止程序则不能恢复
如拷贝大文件进程暂停可以实现断点续传,终止程序后则必须从0开始重传
ctrl + z : 将当前任务暂停并挂载至后台,但是此任务并没有结束,它只是被系统挂起,等待唤醒(ctrl+c是强制结束)
jobs : 查看当前后台中的任务
bg %n :将后台id为n的任务由暂停变成继续执行(stopped -> running),但仍在后台执行
fg %n : 将后台id为n的任务提到前台执行
jobs 显示当前系统终止的任务列表
bg 1 则表示把暂停任务1变成后台任务继续执行
bg命令需要在之前执行scp的session执行,如果在其他窗口执行会报错误
所以必须在xshell窗口关闭前把job转换成后台任务即可 否则将无法把暂停的程序再次执行起来
disown -h %1
注意在这里虽然任务已在后台运行,但如果你此时关闭当前会话窗口或客户端,任务是不会继续执行的。这显然不是我们真正想要的,我有过教训。
如何让任务真正在后台运行,即关闭窗口后还能继续
只需在上面一步基础上再加上disown -h将作业忽略HUP信号(从当前的shell中移除作业)
fg 1 则表示把暂停任务1变成前台任务继续执行 使用fg jobnum 把进程调到前台来执行
操作实例
操作完成
本文来自博客园,作者:不懂123,转载请注明原文链接:https://www.cnblogs.com/yxh168/p/18068617