介绍
在一座早已废弃的疗养院的诡异寂静中,你踏入了一位被困在噩梦中的护士的破旧鞋履。这座荒凉的机构曾经是康复的繁忙庇护所,如今它的墙壁却回荡着被遗忘的过去的低语。艾玛,你在这个令人不安的梦中扮演的护士,面对着一系列神秘的命令行任务,这些任务是她逃脱的关键。你的使命,如果你选择接受,就是帮助艾玛利用 Linux 后台进程的力量,在这令人毛骨悚然的噩梦迷宫中穿行,并揭开通往自由的秘密。
在一座早已废弃的疗养院的诡异寂静中,你踏入了一位被困在噩梦中的护士的破旧鞋履。这座荒凉的机构曾经是康复的繁忙庇护所,如今它的墙壁却回荡着被遗忘的过去的低语。艾玛,你在这个令人不安的梦中扮演的护士,面对着一系列神秘的命令行任务,这些任务是她逃脱的关键。你的使命,如果你选择接受,就是帮助艾玛利用 Linux 后台进程的力量,在这令人毛骨悚然的噩梦迷宫中穿行,并揭开通往自由的秘密。
在这一步中,艾玛遇到了她的第一个挑战:启动一个无需她直接监督即可持续运行的进程,就像那座古老的疗养院似乎以它自己的方式继续存在一样。为了实现这一点,你将学习如何在 Linux 中将命令行任务放入后台运行。
要将任务放入后台运行,可以在命令后附加 &
。例如,如果你有一个需要长时间运行的脚本,可以这样执行:
./long-running-script.sh &
如果她需要验证进程是否在运行,艾玛可以使用 jobs
命令。
现在,让我们模拟一下。在 ~/project
目录下创建一个名为 background-task.sh
的文件,内容如下:
echo '#!/bin/bash' > ~/project/background-task.sh
echo '## Simulate a long-running process' >> ~/project/background-task.sh
echo 'sleep 30' >> ~/project/background-task.sh
使脚本可执行并在后台运行它:
chmod +x ~/project/background-task.sh
cd ~/project
./background-task.sh &
结果应该类似于这样:
[1] 12345
在这里,[1]
是作业编号,12345
是进程 ID。
在这一步中,艾玛听到远处有节奏的跳动声——就像疗养院深处的心脏在跳动。这声音模仿了无数后台进程的节奏,正是这些进程让 Linux 的核心保持活力。你的任务是管理这些进程,在需要时将它们带到前台,或者将它们推入后台的深渊。
让我们在 ~/project
目录下创建一个名为 manage-bg-process.sh
的新脚本,内容如下:
echo '#!/bin/bash' > ~/project/manage-bg-process.sh
echo '## Infinite loop to keep the script running' >> ~/project/manage-bg-process.sh
echo 'while true; do' >> ~/project/manage-bg-process.sh
echo ' echo "The heart of the sanatorium beats on..."' >> ~/project/manage-bg-process.sh
echo ' sleep 5' >> ~/project/manage-bg-process.sh
echo 'done' >> ~/project/manage-bg-process.sh
在后台运行该脚本,然后使用作业控制命令 fg
将其带到前台:
chmod +x ~/project/manage-bg-process.sh
./manage-bg-process.sh &
jobs
fg %1
如果作业编号不同,请将 %1
替换为相应的作业编号。
在本实验中,我们深入探索了 Linux 后台进程和作业管理的领域。实验设计为一个互动性强、叙事驱动的体验,让你在沉浸于引人入胜的故事中扮演一个角色,同时完成相关任务。通过动手实践,你学会了如何在后台运行脚本、使用 jobs
跟踪它们,以及用 fg
管理它们。这些知识对于在 Linux 系统上管理长时间运行的任务至关重要,也是任何在命令行环境中工作的人的必备技能。