当前位置:首页 > 行业动态 > 正文

如何在Linux系统中切换到后台运行程序?

在Linux中,可以使用 Ctrl+Z将前台任务切换到后台,然后通过 bg命令继续执行。

在Linux操作系统中,切换到后台运行一个程序是一个常见且重要的操作,通过将程序置于后台,用户可以释放命令行界面,继续执行其他任务,而不必等待当前程序完成,本文将详细探讨如何在Linux中实现这一功能,包括使用控制符、内置命令和作业控制等方法。

使用 & 符号将程序置于后台

最直接的方法是在命令末尾添加& 符号。

command &

这将使command 在后台执行,系统会为该进程分配一个作业号,并显示其进程ID(PID)。

$ sleep 60 &
[1] 12345

在这个例子中,sleep 60 将在后台运行60秒,而你可以立即继续输入其他命令。[1] 是作业号,12345 是进程ID。

使用 Ctrl+Z 暂停前台进程

如果你已经启动了一个前台进程,可以使用Ctrl+Z 将其暂停。

$ sleep 60
^Z
[1]+  Stopped                 sleep 60

你可以使用bg 命令将该进程移到后台继续执行:

$ bg
[1]+ sleep 60 &

3. 使用 bg 命令将已暂停的进程移至后台

对于已经暂停的进程,除了使用Ctrl+Z 和bg 组合外,还可以直接使用bg %jobnumber 命令。

$ jobs
[1]+  Stopped                 sleep 60
$ bg %1
[1]+ sleep 60 &

使用 fg 命令将后台进程移至前台

如果你想将一个后台进程移回前台,可以使用fg 命令。

$ jobs
[1]+  Running                 sleep 60 &
$ fg %1
sleep 60

5. 使用 disown 命令脱离后台进程

当你关闭终端时,后台进程通常会被终止,如果你希望某个后台进程在你退出终端后继续运行,可以使用disown 命令。

$ sleep 60 &
[1] 12345
$ disown %1

这样,即使关闭终端,sleep 60 也会继续运行。

6. 使用 nohup 命令防止进程因终端关闭而终止

另一种方法是使用nohup 命令,它可以忽略挂起信号,使进程在你退出终端后继续运行。

$ nohup command &

默认情况下,nohup 会将输出重定向到nohup.out 文件,你可以通过指定输出文件来覆盖这一行为,

$ nohup command > output.log 2>&1 &

作业控制的快捷键

Linux提供了一些快捷键来方便地控制作业:

Ctrl+Z:暂停当前进程。

bg:将暂停的进程移至后台。

fg:将后台进程移至前台。

jobs:列出当前作业及其状态。

kill %jobnumber:终止指定的作业。

8. 使用 screen 或 tmux 管理多个会话

对于需要更复杂会话管理的场景,可以使用screen 或tmux,这些工具允许你创建多个虚拟终端,并在它们之间自由切换,使用screen:

$ screen

然后在新的屏幕会话中运行你的程序,你可以使用Ctrl+A 然后按D 键暂时分离屏幕会话,稍后使用screen -r 恢复会话。

在Linux中切换后台的方法多种多样,选择合适的方法取决于具体的使用场景和个人偏好,以下是一些最佳实践建议:

使用 & 符号:适用于大多数简单场景,快速将新启动的程序置于后台。

使用 Ctrl+Z 和 bg:适用于需要暂停当前程序并将其移至后台的情况。

使用 disown 和 nohup:适用于需要确保程序在你退出终端后继续运行的情况。

使用 screen 或 tmux:适用于需要管理多个会话或长时间运行的任务。

无论采用哪种方法,了解如何有效地管理后台进程都是提高生产力和系统管理能力的关键。

FAQs

Q1: 如何查看当前有哪些后台进程?

A1: 你可以使用jobs 命令来查看当前有哪些后台进程及其状态。

$ jobs
[1]+  Running                 sleep 60 &
[2] Running                 another_command &

Q2: 如果我想终止一个后台进程,应该怎么做?

A2: 你可以使用kill 命令加上作业号或进程ID来终止后台进程,使用jobs 命令找到作业号或进程ID,然后使用以下命令之一:

$ kill %jobnumber
$ kill PID
$ jobs
[1]+  Running                 sleep 60 &
$ kill %1

到此,以上就是小编对于“linux切换后台”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

0