在Linux系统中,进程可以在前台运行或者在后台运行,这决定了用户与进程的交互方式以及进程在用户终端会话中的行为

fronted/backend

  1. 前台运行

    • 当一个进程在前台运行时,它会与启动它的终端会话直接交互。这意味着进程的输入和输出都会显示在终端上。
    • 如果进程需要用户输入,它将在前台等待输入,直到收到输入后才会继续执行。
    • 前台进程可以通过Ctrl + C发送中断信号来终止。
  2. 后台运行

    • 当一个进程在后台运行时,它不会与启动它的终端会话直接交互。这意味着即使进程有输出,也不会显示在终端上,除非使用特定的命令来查看。
    • 后台进程可以继续运行,即使用户断开了终端会话。
    • 可以通过jobs命令查看后台进程的状态,使用fg命令将后台进程带回前台,或者使用kill命令发送信号来控制进程。
  3. 将进程放到后台运行

    • 可以通过在命令后添加&符号来将进程放到后台运行。
    • 例如:sleep 10 &
  4. 将前台进程放到后台

    • 如果一个进程已经在前台运行,可以通过按Ctrl + Z将其暂停,然后使用bg命令将其放到后台继续运行。
    • 例如:bg %1(其中%1是暂停的进程的作业号)
  5. 查看后台进程

    • 使用jobs命令可以查看当前终端会话中的后台进程列表。
  6. 将后台进程带回前台

    • 使用fg命令可以将后台进程带回前台,继续在终端中运行。
    • 例如:fg %1
  7. 结束后台进程

    • 使用kill命令加上进程ID或者作业号可以结束后台进程。
    • 例如:kill %1 或者 kill PID
  8. 无阻塞后台运行

    • 有时候,你可能希望在后台运行一个命令,但是不希望它被终端的关闭所影响。在这种情况下,可以使用nohup命令,它会忽略挂起信号(SIGHUP)。
    • 例如:nohup long_running_command &