linux中前后台含义
在Linux系统中,进程可以在前台运行或者在后台运行,这决定了用户与进程的交互方式以及进程在用户终端会话中的行为
fronted/backend
前台运行:
- 当一个进程在前台运行时,它会与启动它的终端会话直接交互。这意味着进程的输入和输出都会显示在终端上。
- 如果进程需要用户输入,它将在前台等待输入,直到收到输入后才会继续执行。
- 前台进程可以通过
Ctrl + C
发送中断信号来终止。
后台运行:
- 当一个进程在后台运行时,它不会与启动它的终端会话直接交互。这意味着即使进程有输出,也不会显示在终端上,除非使用特定的命令来查看。
- 后台进程可以继续运行,即使用户断开了终端会话。
- 可以通过
jobs
命令查看后台进程的状态,使用fg
命令将后台进程带回前台,或者使用kill
命令发送信号来控制进程。
将进程放到后台运行:
- 可以通过在命令后添加
&
符号来将进程放到后台运行。 - 例如:
sleep 10 &
- 可以通过在命令后添加
将前台进程放到后台:
- 如果一个进程已经在前台运行,可以通过按
Ctrl + Z
将其暂停,然后使用bg
命令将其放到后台继续运行。 - 例如:
bg %1
(其中%1
是暂停的进程的作业号)
- 如果一个进程已经在前台运行,可以通过按
查看后台进程:
- 使用
jobs
命令可以查看当前终端会话中的后台进程列表。
- 使用
将后台进程带回前台:
- 使用
fg
命令可以将后台进程带回前台,继续在终端中运行。 - 例如:
fg %1
- 使用
结束后台进程:
- 使用
kill
命令加上进程ID或者作业号可以结束后台进程。 - 例如:
kill %1
或者kill PID
- 使用
无阻塞后台运行:
- 有时候,你可能希望在后台运行一个命令,但是不希望它被终端的关闭所影响。在这种情况下,可以使用
nohup
命令,它会忽略挂起信号(SIGHUP)。 - 例如:
nohup long_running_command &
- 有时候,你可能希望在后台运行一个命令,但是不希望它被终端的关闭所影响。在这种情况下,可以使用