在 Linux 中关闭 SSH 客户端后如何防止后台进程停止?
Linux中的后台进程是独立于shell运行的进程。它为我们提供了离开终端窗口的权限,并且它仍然会在后台执行而无需用户进行任何交互。
Nginx和ApacheWeb服务器是用于提供图像和动态内容的后台进程的最常见示例。
在Linux中,我们可以通过在它后面附加符号&来 在后台启动一个进程。
考虑下面显示的例子-
sleep 10000 &
在上面的命令中,我们使用了sleep语句,该语句将在我们刚刚写的语句之后运行指定的时间,最后跟上&符号以在后台运行进程。
输出结果
immukul@192 ~ % sleep 10000 & [1] 24101
现在该进程正在后台运行。我们还可以在以下命令的帮助下检查进程-
jobs输出结果
immukul@192 ~ % jobs [1] running sleep 10000
现在我们知道什么是后台进程以及如何运行它,我们现在可以专注于如何在ssh连接关闭后维护进程状态。
最广泛使用的方法是利用Linux提供给我们的nohup命令。它代表“nohangup”,其主要目的是执行一个命令,使其忽略挂断信号,因此即使ssh连接断开也不会停止。
只需将以下命令写入终端,即使ssh连接关闭,您的进程也不会被终止-
nohup process_name &
在某些情况下,我们希望以低优先级运行任务,在这种情况下,我们使用以下命令-
nohup nice process_name &
在漂亮的 命令使我们能够在一个较低的优先级运行的进程。
实现相同解决方案的另一种方法是使用可在此链接中找到的GNUScreen。GNUScreen允许我们断开与服务器的连接,而我们的所有进程将继续在后台运行。
另一种方法是建立双叉,后台进程不会终止,在这种情况下,在终端运行以下命令-
((mycommand &)&)