介绍
在本实验中,你将学习 Linux 的 disown
命令,以及如何使用它来将正在运行的进程与 shell 分离,使这些进程在你退出系统或关闭终端后仍能继续执行。实验内容包括理解 disown
命令的用途、在后台分离正在运行的进程,以及管理多个已分离进程的输出。这些知识对于运行长时间任务(如备份脚本或 Web 服务器)非常有用,而无需保持终端会话打开。
在本实验中,你将学习 Linux 的 disown
命令,以及如何使用它来将正在运行的进程与 shell 分离,使这些进程在你退出系统或关闭终端后仍能继续执行。实验内容包括理解 disown
命令的用途、在后台分离正在运行的进程,以及管理多个已分离进程的输出。这些知识对于运行长时间任务(如备份脚本或 Web 服务器)非常有用,而无需保持终端会话打开。
disown
命令的用途在这一步中,你将学习 Linux 中 disown
命令的用途。disown
命令用于将正在运行的进程与 shell 分离,使其在 shell 会话关闭后仍能继续运行。
当你在前台启动一个进程时,该进程会与当前的 shell 会话关联。如果你关闭 shell,该进程将被终止。然而,通过使用 disown
命令,你可以将进程与 shell 分离,使其在后台继续运行,即使 shell 已经关闭。
这在某些场景中非常有用,例如当你需要运行一个长时间的任务(如备份脚本或 Web 服务器)时,你希望确保即使你退出系统或关闭终端,该进程仍能继续运行。
让我们从一个简单的后台进程开始,然后使用 disown
命令将其与 shell 分离。
## 启动一个无限运行的后台进程
$ sleep 1000 &
[1] 12345
## 使用 disown 命令将进程与 shell 分离
$ disown %1
示例输出:
在上面的示例中,我们首先使用 sleep 1000 &
命令启动一个后台进程。这将使 sleep
命令在后台运行 1000 秒(约 16 分钟)。
接下来,我们使用 disown %1
命令将进程与 shell 分离。%1
指的是后台进程的作业编号,你可以使用 jobs
命令找到它。
运行 disown
命令后,即使你退出系统或关闭终端,该进程仍会在后台继续运行。
在这一步中,你将学习如何在后台分离一个正在运行的进程,使其在你退出系统或关闭终端后仍能继续执行。
首先,让我们启动一个无限运行的后台进程:
## 启动一个无限运行的后台进程
$ sleep 1000 &
[1] 12345
现在,让我们使用 disown
命令分离正在运行的进程:
## 分离正在运行的进程
$ disown %1
示例输出:
在上面的示例中,我们首先使用 sleep 1000 &
命令启动一个后台进程。这将使 sleep
命令在后台运行 1000 秒(约 16 分钟)。
接下来,我们使用 disown %1
命令将进程与 shell 分离。%1
指的是后台进程的作业编号,你可以使用 jobs
命令找到它。
运行 disown
命令后,即使你退出系统或关闭终端,该进程仍会在后台继续运行。
为了验证进程是否仍在运行,你可以使用 ps
命令:
## 检查进程是否仍在运行
$ ps -ef | grep 'sleep 1000'
labex 12345 12321 0 11:30 pts/0 00:00:00 sleep 1000
如你所见,sleep 1000
进程仍在运行,即使我们已经将其分离。
在这一步中,你将学习如何分离多个在后台运行的进程并管理它们的输出。
首先,让我们启动两个无限运行的后台进程:
## 启动两个后台进程
$ sleep 1000 &
[1] 12345
$ sleep 2000 &
[2] 12346
现在,让我们使用 disown
命令分离这两个进程:
## 分离正在运行的进程
$ disown %1 %2
示例输出:
在上面的示例中,我们首先使用 sleep 1000 &
和 sleep 2000 &
命令启动两个后台进程。这将使 sleep
命令分别在后台运行 1000 秒和 2000 秒。
接下来,我们使用 disown %1 %2
命令将这两个进程与 shell 分离。%1
和 %2
指的是后台进程的作业编号,你可以使用 jobs
命令找到它们。
运行 disown
命令后,即使你退出系统或关闭终端,这两个进程仍会在后台继续运行。
为了管理已分离进程的输出,你可以将它们的输出重定向到文件中:
## 启动两个后台进程并将它们的输出重定向到文件
$ sleep 1000 > process1.log 2>&1 &
[1] 12345
$ sleep 2000 > process2.log 2>&1 &
[2] 12346
## 分离正在运行的进程
$ disown %1 %2
在上面的示例中,我们启动了两个后台进程,并将它们的输出分别重定向到 process1.log
和 process2.log
文件中。然后,我们使用 disown
命令将进程与 shell 分离。
在进程运行结束后,你可以检查日志文件的内容,查看已分离进程的输出。
在本实验中,你将学习如何在 Linux 中使用 disown
命令将正在运行的进程与当前 shell 会话分离。这使得进程可以在后台继续运行,即使你退出系统或关闭终端。你将启动一个后台进程,然后使用 disown
命令将其分离,确保它继续运行。此外,你还将学习如何分离多个进程并管理它们的输出。disown
命令对于运行长时间任务(如备份或 Web 服务器)非常有用,而无需保持终端打开。