在使用 Linux 的过程中,大概会碰到某些任务需要在后台运行的情况,比方长时间运行的脚本或占用终端的命令。将正在执行的任务放到后台,可以进步操作效率,不需要为每个任务单独开一个终端窗口。本文将介绍几种常用的方法来实现这一目标。
1. 停息任务并发送到后台
当任务已经在前台运行时,可以使用快捷键和命令将其切换到后台运行:
- 停息任务:
在任务运行时,按下快捷键 Ctrl+Z,这会将任务停息并返回到终端。系统会提示类似以下信息:
- [1]+ Stopped command_name
复制代码 - 将任务移到后台继承运行:
在终端输入以下命令即可:
此时任务会切换到后台,并继承执行。
- 查看后台任务状态:
使用 jobs
命令,可以列出所有当前的后台任务:
输出示例:
- [1]+ Running command_name &
复制代码 - 将后台任务移回前台:
如果需要重新在前台操作该任务,可以使用 fg 命令:
比方,将编号为 1 的任务规复到前台:
2. 启动任务时直接发送到后台
在启动任务时,如果知道该任务需要在后台运行,可以直接在命令末端添加 & 符号:
这种方法会直接将任务放到后台执行,并返回一个任务 PID。比方:
这里,12345 是任务的历程 ID,可以用来管理该任务。
3. 使用 nohup 保证任务连续运行
如果希望任务在终端关闭后仍旧继承运行,可以使用 nohup 命令。
- 输出文件: 默认情况下,任务的输出会生存到 nohup.out 文件中,除非显式指定输出路径:
- nohup command > output.log 2>&1 &
复制代码 - 得当长时间运行的任务,比方文件备份或大规模数据处理。
4. 使用 disown 取消终端关联
如果任务已经在后台运行,但你需要确保它在退出终端后继承运行,可以使用 disown 命令:
- 起首将任务放到后台运行(使用 Ctrl+Z 和 bg
)。
- 然后运行:
disown 命令会移除任务与当前终端的关联,从而确保终端关闭时任务不会被中断。
5. 后台任务管理
Linux 提供了一些工具来管理后台任务:
- 查看后台任务:
使用 jobs
命令可以列出所有后台任务及其状态:
- 停止后台任务:
如果需要停止某个后台任务,可以使用 kill 命令:
或使用任务号:
- 规复到前台并停止:
使用 fg 将任务规复到前台,然后按 Ctrl+C 停止。
6. 应用场景示例
示例 1:一个长时间运行的脚本
假设你运行了一个脚本:
- python long_running_script.py
复制代码 发现脚本会执行很久,但不希望它占用当前终端窗口,可以按 Ctrl+Z 停息,然后运行:
示例 2:文件下载
使用 wget 下载大文件:
- wget http://example.com/largefile.zip &
复制代码 任务会立即在后台执行,同时表现任务的 PID,方便后续管理。
总结
将任务移到后台运行是 Linux 中非常实用的技巧,可以通过以下方式实现:
- 使用快捷键和命令: Ctrl+Z、bg
和 fg。
- 启动任务时添加 & 符号。
- 使用 nohup 或 disown 确保任务不受终端退出影响。
机动运用这些方法,可以更高效地管理任务,提升使用 Linux 的生产力!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |