linux:后台运行程序的几种方法

SmallerFL 2024-07-31 13:37:01 阅读 76

文章目录

1. 使用 & 符号2. 使用 nohup 命令3. 使用 disown 命令4. 使用 screen


在 Linux 中,可以使用几种方法将程序在后台运行。

1. 使用 & 符号

在命令行中,在要运行的命令末尾添加 <code>& 符号,可以将该命令放到后台运行。

示例:

./my_program &

2. 使用 nohup 命令

nohup 命令可以使程序忽略 SIGHUP 信号,从而使其在后台持续运行,即使终端关闭。通常与 & 符号一起使用。

示例:

nohup ./my_program &

3. 使用 disown 命令

在 Linux 中,disown 是一个 shell 命令,用于从当前 shell 中移除作业(job),使其不再与该 shell 关联,从而使得作业在后台继续运行,即使关闭了启动它的终端。

disown 命令通常与 & 符号一起使用,用于将命令放置到后台运行,并将其从当前 shell 的作业列表中移除。

用法示例:

(1) 将命令放置到后台运行并使用 disown

command &

disown

这将 command 放置到后台运行,并使用 disown 命令将其从当前 shell 的作业列表中移除。这样,即使关闭了启动 command 的终端,command 仍将在后台继续运行。

(2)查看当前 shell 的作业列表

你可以使用 jobs 命令来查看当前 shell 的作业列表,以确定哪些作业在后台运行。

jobs

disown 命令对于在后台运行长时间的任务或者需要长时间运行的任务非常有用。但需要注意的是,使用 disown 命令后,将无法使用 fg 命令将作业带回前台。

4. 使用 screen

screen 是一个终端多路复用器,它允许你在单个终端窗口中运行多个终端会话,并且可以在终端关闭后继续运行这些会话。使用 screen,你可以在一个终端中创建多个虚拟窗口,并在每个窗口中运行不同的程序或命令。

通过使用 screen,你可以将程序放在一个会话中,并在终端关闭后仍然让程序在后台运行。

示例(使用 screen):

screen -S my_session_name

运行完自己的命令之后,按下 Ctrl+a+d 退出 screen,但保持程序在后台运行

下面是一些常见的 screen 用法:

(1)启动 screen

在终端中直接运行 screen 命令来启动一个新的 screen 会话:

screen

这将启动一个新的 screen 会话,并在其中打开一个终端窗口。

(2)创建具有名称的会话

你可以使用 -S 参数为会话指定一个名称:

screen -S session_name

这将创建一个具有指定名称的新会话。

(3)分离 screen 会话

想要临时离开 screen 会话但保持会话的运行状态,你可以按下 Ctrl+a,然后按下 d,这将会话分离并返回到原始终端。

(4)重新连接 screen 会话

当你想要重新连接到之前分离的 screen 会话时,可以运行以下命令:

screen -r

如果有多个 screen 会话,你可以在 screen -r 后面指定要重新连接的会话名称。

(5)列出 screen 会话

你可以使用以下命令列出当前运行的 screen 会话:

screen -ls

这将显示所有 screen 会话的列表,以及它们的状态和会话 ID。

(6)结束 screen 会话

要结束一个 screen 会话,你可以首先连接到该会话,然后在会话中运行 exit 命令,或者使用以下命令来杀死该会话:

screen -X -S session_name quit



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。