Linux shell 中的任务可以在后台挂起运行。当你在终端中执行一个命令时,该命令会占据当前终端并运行,直到该命令执行完毕或者手动停止(如按下 Ctrl+C)。但是,你可以使用特殊字符 & 将命令放在后台运行,这样你可以继续在终端中输入其他命令而不必等待前一个命令执行完毕。
在命令行中,将命令放在后台的方法是在命令末尾添加 & 符号。例如
$ long_running_command &
这样,long_running_command 将在后台运行,而你可以继续输入其他命令。
你可以通过 jobs 命令查看当前在后台运行的任务列表,以及它们的状态和编号。使用 fg 命令可以将一个后台任务切换到前台继续运行,而使用 bg 命令可以将一个在后台暂停的任务切换为继续后台运行。
以下是一个简单的示例:
image.png
在实际应用中,后台运行任务非常有用,特别是对于那些需要较长时间运行的命令或脚本。然而,你需要小心后台任务不会影响到其他正在进行的操作。有时候,可以将输出重定向到文件或使用 nohup 命令以避免在终端退出时停止后台任务的运行。
实例:
你可以使用以下方法在 Linux shell 中对 test.sh
脚本进行挂起、暂停和运行等操作。
假设 test.sh
是一个可执行的脚本文件。首先,确保在执行之前,你已经为该脚本添加了执行权限,使用命令 chmod +x test.sh
。
- 后台运行
test.sh
:
./test.sh &
- 暂停
test.sh
的运行:
在命令行中按下 Ctrl + Z
键,这将把 test.sh
暂停,并将其挂起到后台。
- 继续运行
test.sh
:
使用 fg
命令将挂起的任务切换到前台继续运行:
fg
或者使用 bg
命令将其切换到后台继续运行:
bg
- 查看后台任务列表:
使用 jobs
命令查看当前在后台运行的任务列表:
jobs
在后台运行的任务会以编号形式显示,你可以通过 fg
或 bg
命令指定任务编号来切换任务的状态。
请注意,在使用 Ctrl + Z
暂停任务时,该任务会暂停在后台,并且不会执行。而使用 bg
命令将其切换到后台后,任务会继续执行。如果你想在任务继续执行的同时将输出重定向到文件,可以使用 nohup
命令。
例如:
nohup ./test.sh &
这样,即使你退出终端,test.sh
也会继续在后台运行,并且输出将被重定向到 nohup.out
文件中。
请注意,在操作后台任务时,建议小心维护任务的状态,以避免不必要的问题。
网友评论