管理 Linux 后台作业的 5 个示例-Bg, Fg, &

举报
Tiamo_T 发表于 2022/02/10 15:59:35 2022/02/10
【摘要】 当您执行需要很长时间的 Linux shell 脚本或命令时,您可以将其作为后台作业运行。 在本文中,让我们了解一下如何在后台执行作业、将作业带到前台、查看所有后台作业以及杀死后台作业。

当您执行需要很长时间的 Linux shell 脚本或命令时,您可以将其作为后台作业运行。

在本文中,让我们了解一下如何在后台执行作业、将作业带到前台、查看所有后台作业以及杀死后台作业。

1.执行后台作业

在命令中附加一个 & 符号会在后台运行作业。

例如,当您执行可能需要很长时间才能执行的查找命令时,您可以将其置于后台,如下所示。以下示例查找在过去 24 小时内更改的根文件系统下的所有文件。

# find / -ctime -1 > /tmp/changed-file-list.txt &

2. 使用 CTRL-Z 和 bg 命令将当前前台作业发送到后台

您可以将已经运行的前台作业发送到后台,如下所述:

  • 按“CTRL+Z”将暂停当前的前台作业。
  • 执行 bg 使该命令在后台执行。

例如,如果您忘记在后台执行作业,则无需终止当前作业并启动新的后台作业。相反,暂停当前作业并将其置于后台,如下所示。

# find / -ctime -1 > /tmp/changed-file-list.txt

# [CTRL-Z]
[2]+  Stopped                 find / -ctime -1 > /tmp/changed-file-list.txt

# bg

3.使用jobs命令查看所有后台作业

您可以使用命令jobs列出后台作业。作业命令的示例输出是


# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

4. 使用 fg 命令将作业从后台转移到前台

您可以使用fg 命令将后台作业带到前台。当不带参数执行时,它将把最近的后台作业带到前台。

#fg

如果您有多个后台地面作业,并且希望将某个作业带到前台,请执行作业命令,该命令将显示作业 ID 和命令。

在下面的例子中,fg %1 将把job#1(即download-file.sh)带到前台。

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

# fg %1

5. 使用 kill % 杀死特定的后台作业

如果要终止特定的后台作业使用,请终止 %job-number。例如,要杀死工作 2,请使用

# kill %2
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。