否定Linux中的进程

如果您希望进程在注销Linux系统后仍能继续运行,您有两个选项。

其中之一是使用不认命令。它告诉你的shell不要发送a玫瑰(挂起)在注销时向进程发送信号。因此,进程继续运行。当您启动一个进程,但由于某些原因,您无法保持登录状态并等待它完成时,这是非常方便的。

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

$ show_builtins | grep disown disown [-h] [-ar] [jobspec…| pid >测试[expr]

不像nohup效果几乎是一样的不认使用您已经启动了一个过程。只需使用disown命令指定进程ID:

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

该进程将在您注销后继续运行,如果在您再次登录时该进程还没有完成,则它仍将运行,直到完成为止。实际上,当您再次注销时,它甚至不会受到影响,因为它不会与当前shell关联。

看看不认

如果你想看看怎么做不认可以在脚本中设置一个简单的循环。这里有一个例子:

# !/bin/bash,而执行日期>> my.log睡眠600完成

这个脚本将当前日期和时间添加到名为my的文件中。每10分钟记录一次,而且没有停止点。你可以按照通常的方式开始:

美元。/环路

然后,当您准备注销时,您可以在某个地方运行,挂起您的进程z ^(按住control键并按z键)在那之后,列出你的进程:

$ ps PID TTY时间CMD 801593分/3 00:00:00点bash 801812分/3 00:00:00点长循环801816分/3 00: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点/3 00:00:00睡眠802115点/3 00:00:00 ps $ kill -9 801812 <==确定杀死$ ps PID TTY时间CMD 801593点/3 00:00:00 bash 802150点/3 00:00:00 ps

一些选项

的输出中可能已经注意到show_builtins上面的命令不认命令有几个选项。的——一个选项将不认所有摘要过程而- r意味着它只会放弃正在运行(而不是停止)的进程。在这两种情况下,当您键入“jobs”时,被拒绝的作业将不再显示。当你使用- h选项,另一方面,该作业将不会从作业列表中删除,尽管当您注销时shell仍然不会向它发送HUP信号。

看看如何使用Ranger

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最重要的话题发表评论。
相关:

版权©2020足球竞彩网下载

工资调查:结果在