当前位置: 首页 > article >正文

Linux 中怎样把正在执行的任务放到后台执行

在使用 Linux 的过程中,可能会遇到某些任务需要在后台运行的情况,例如长时间运行的脚本或占用终端的命令。将正在执行的任务放到后台,可以提高操作效率,不需要为每个任务单独开一个终端窗口。本文将介绍几种常用的方法来实现这一目的。

1. 暂停任务并发送到后台

当任务已经在前台运行时,可以使用快捷键和命令将其切换到后台运行:

  1. 暂停任务:
    在任务运行时,按下快捷键 Ctrl+Z,这会将任务暂停并返回到终端。系统会提示类似以下信息:

    [1]+  Stopped    command_name
    
  2. 将任务移到后台继续运行:
    在终端输入以下命令即可:

    bg
    

    此时任务会切换到后台,并继续执行。

  3. 查看后台任务状态:
    使用 jobs 命令,可以列出所有当前的后台任务:

    jobs
    

    输出示例:

    [1]+  Running    command_name &
    
  4. 将后台任务移回前台:
    如果需要重新在前台操作该任务,可以使用 fg 命令:

    fg %<job_number>
    

    例如,将编号为 1 的任务恢复到前台:

    fg %1
    

2. 启动任务时直接发送到后台

在启动任务时,如果知道该任务需要在后台运行,可以直接在命令末尾添加 & 符号:

command &

这种方法会直接将任务放到后台执行,并返回一个任务 PID。例如:

[1] 12345

这里,12345 是任务的进程 ID,可以用来管理该任务。


3. 使用 nohup 保证任务持续运行

如果希望任务在终端关闭后仍然继续运行,可以使用 nohup 命令。

nohup command &
  • 输出文件: 默认情况下,任务的输出会保存到 nohup.out 文件中,除非显式指定输出路径:

    nohup command > output.log 2>&1 &
    
  • 适合长时间运行的任务,例如文件备份或大规模数据处理。


4. 使用 disown 取消终端关联

如果任务已经在后台运行,但你需要确保它在退出终端后继续运行,可以使用 disown 命令:

  1. 首先将任务放到后台运行(使用 Ctrl+Zbg)。
  2. 然后运行:
    disown %<job_number>
    

disown 命令会移除任务与当前终端的关联,从而确保终端关闭时任务不会被中断。


5. 后台任务管理

Linux 提供了一些工具来管理后台任务:

  • 查看后台任务:
    使用 jobs 命令可以列出所有后台任务及其状态:

    jobs
    
  • 终止后台任务:
    如果需要终止某个后台任务,可以使用 kill 命令:

    kill <PID>
    

    或使用任务号:

    kill %<job_number>
    
  • 恢复到前台并终止:
    使用 fg 将任务恢复到前台,然后按 Ctrl+C 终止。


6. 应用场景示例

示例 1:一个长时间运行的脚本

假设你运行了一个脚本:

python long_running_script.py

发现脚本会执行很久,但不希望它占用当前终端窗口,可以按 Ctrl+Z 暂停,然后运行:

bg

示例 2:文件下载

使用 wget 下载大文件:

wget http://example.com/largefile.zip &

任务会立即在后台执行,同时显示任务的 PID,方便后续管理。


总结

将任务移到后台运行是 Linux 中非常实用的技巧,可以通过以下方式实现:

  1. 使用快捷键和命令: Ctrl+Zbgfg
  2. 启动任务时添加 & 符号。
  3. 使用 nohupdisown 确保任务不受终端退出影响。

灵活运用这些方法,可以更高效地管理任务,提升使用 Linux 的生产力!


http://www.kler.cn/a/399872.html

相关文章:

  • vue3 路由写法及传参方式 !超详细
  • 开源物业管理系统助力智能社区提升服务效率与用户体验
  • 基于Java Springboot北工国际健身俱乐部系统
  • 数据结构哈希表-(开放地址法+二次探测法解决哈希冲突)(创建+删除+插入)+(C语言代码)
  • 用Rust TypeMap安全存储多种类型数据
  • 【知识科普】统一身份认证CAS
  • PGMP-练DAY26
  • django的model时间怎么转时间戳
  • SWPUCTF 2024 奇迹新生塞 签到?
  • 【微信小程序】访客管理
  • 基于扩散模型的无载体图像隐写术
  • Java-异常处理机制
  • 近几年新笔记本重装系统方法及一些注意事项
  • 【论文阅读】Prompt-to-Prompt Image Editing with Cross Attention Control
  • 【拥抱AI】人工智能驱动下的电商革命:创新应用与策略实践
  • RPC安全可靠的异常重试
  • OpenAI震撼发布:桌面版ChatGPT,Windows macOS双平台AI编程体验!
  • Vue 3 组合式 API 中的组件生命周期函数详解
  • 正则表达式完全指南,总结全面通俗易懂
  • Elasticsearch:管理和排除 Elasticsearch 内存故障