操作系统任务前后台切换

启动系统任务

     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 把进程调到前台来执行

操作实例

       

         

       

 操作完成

 

posted @ 2024-03-12 17:11  不懂123  阅读(6)  评论(0编辑  收藏  举报