如何在Linux中注销后运行的进程

当您在Bash中拒绝Linux进程时,您将其终止退出并允许其自行完成。此帖子显示如何使用isows命令。

如果您希望在注销Linux系统后继续运行的过程,则您有几个选项。

其中一个是使用否认命令。它告诉你的贝壳避免发送h(HANGUP)注销时的过程。因此,该过程继续运行。只要您开始进程,这可能非常方便,然后出于某种原因,您无法留在登录并等待它完成。

否认命令是一个内置的shell。这意味着您不必安装它来使用它,但它也意味着如果使用不支持它的shell,则不会使用它。对于我们使用的人抨击和相关的贝壳(ZSH.KSH.等等。),否认应该可用,您可以使用以下命令验证此命令,该命令列出shell内置,然后查找“拒绝”:

$ show_builtins |grep否否认否认[-a] [jobspec ... |PID>测试[expr]

不像nohup,这几乎相同,否认用来你开始了一个过程。只需使用该过程ID指定否认命令:

$ ps -ef |grep long-loop shs 799217 1 0 11:04?00:00:00 / bin / bash / home / shs / bin / bigjob $ isown 799217

注销后,该过程将继续运行,如果您尚未在您再次登录时尚未完成,则仍将在完成之前运行。事实上,当您再次注销时,它甚至不会受到影响,因为它不会与当前的shell相关联。

检查否认

如果你想看看如何否认有效,您可以在脚本中设置一个简单的循环。这是一个例子:

#!/ bin / bash虽然真实的do date >> my.log睡眠600完成

此脚本将当前日期和时间添加为每10分钟命名为“my.log”的文件,并没有停止点。您可以以通常的方式启动它:

$ ./my-loop.

然后,当您准备退出时,您可以在某个地方运行,请暂停您的进程^ Z.(按住Control键并按“Z”)。之后,列出您的进程:

$ ps pid tty time cmd 801593 pts / 3 00:00:00 bash 801812 pts / 3 00:00:00长循环801816 pts / 3 00:00睡觉

然后用来否认使用脚本的进程ID命令:

$否认801812.

请注意,如果您从一开始就在后台运行进程(例如,我的循环&),您不需要使用^ Z.

终止一个派条的过程

当然,大多数过程都不会旨在永远奔跑。他们可能会在再次登录之前完成。在此示例循环的情况下,您最终需要使用一点力来停止并重新打开。“肯定杀戮”-9选项应该为您执行以下操作:

$ kill 801812 $ ps pid tty time cmd 801593 pts / 3 00:00:00 bash 801812 pts / 3 00:00:00长循环<== oops!仍然运行801816 pts / 3 00:00:00睡眠802115 pts / 3 00:00:00 ps $ kill -9 801812 <==当然kill $ ps pid tty time cmd 801593 pts / 3 00:00:00 bash 802150 pts/ 3 00:00:00 PS

一些选择

你可能已经注意到了输出show_builtins.上面的命令否认命令有几个选项。这-一个选择将否认全部背景下的过程-R.意味着它只会否认运行(未停止)流程。在这两种情况下,当您键入“作业”时,被剥夺的工作将不再出现。当你使用的时候-H另一方面,选项不会从作业列表中删除作业,但在退出时仍将避免shell仍将避免发送HUP信号。

加入网络世界社区有个足球雷竞技appFacebooklinkedin评论最重要的主题。
有关的:

版权所有©2020.Raybet2

IT薪水调查:结果是