Disowning在Linux中的过程

如果你想有一个过程的继续,你注销后,即使在Linux系统上运行,你有几个选项。

其中之一是使用不认命令。它告诉你的shell不要从发送玫瑰当您注销(挂断)信号的过程。所以,过程继续运行。当你启动一个进程,然后这可能是非常方便的,由于某种原因,你无法保持登录状态,并等待它完成。

不认命令是内置了壳。这意味着,你不必安装使用它,但它也意味着,如果你使用的是不支持它的壳也将不可用。对于我们这些使用bash和相关炮弹(zsh的KSH等),disown应该是可用的,你可以验证这一点,像这样的命令,列出外壳内置,然后寻找“disown”:

$ show_builtins |grep的不认不认[-h] [-ar] [JOBSPEC ... |PID>测试[EXPR]

不像nohup的它具有几乎相同的效果,不认用来你已经开始的过程。只需指定与不认命令的进程ID:

$ ps -ef | grep长循环shs 799217 1 0 11:04 ?00:00:00 /bin/bash /home/sh /bin/bigjob $ disown 799217

这一进程将继续运行在您注销后,如果它没有通过你再次登录的时间内完成,仍然会运行,直到完成为止。事实上,它甚至不会被当您再次注销,因为它不会与当前的shell相关影响。

检查出不认

如果您想怎么看不认作品中,你可以设置一个脚本中的简单循环。下面是一个例子:

#!/斌/庆典,而真正做日期>> my.log睡眠600完成

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

$ ./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:00睡眠

然后使用不认与脚本的进程ID命令:

$不认801812

需要注意的是,如果你从一开始背景(例如运行过程中,我 - 环),你不需要使用^ Z

终止一个进程六亲不认

大多数进程不会,当然,被设计为永远运行。你再重新登录之前,他们可能会完成。在这个例子中循环的情况下,你最终会需要用一点力来阻止它,一旦你已经注销并重新打开。在“必杀” -9选项应该为你做这个。

$杀801812 $ ps的PID TTY TIME CMD 801593点/ 3 00:00:00庆典801812点/ 3 00:00:00长环<==糟糕!仍在运行的801816点/ 3 00:00:00睡眠802115点/ 3 00:00:00 PS $杀死-9 801812 <==击必杀$ ps的PID TTY TIME CMD 801593点/ 3 00:00:00庆典802150点/ 3 00:00:00 PS

一些选项

的输出中可能已经注意到show_builtins命令上面说的不认命令有几个选项。该-一种选项不认所有转到后台处理,同时- r意味着它只断绝关系运行(不停止)的过程。在这两种情况下,被否认的工作将不再显示出来,当你键入“工作”。当您使用-H选项,在另一方面,作业不会从任务列表中删除,但shell将仍然在注销时发送HUP信号,它避免。

了解如何使用游侠

加入对网络世界的社有个足球雷竞技app区Facebook的LinkedIn对那些顶级心态的话题发表评论。
有关:

版权所有©2020Raybet2

IT薪资调查:结果是