我是Ubuntu的新手。我学到了一条命令
nohup [command] -运行对挂断信号的<command>免疫
我不明白“免疫挂断信号”的意思。它说的是什么类型的信号?请告诉我如何使用这个命令和一个例子。
发布于 2018-01-12 14:11:35
让我们考虑一下,您已经从终端打开了一个gedit文本编辑器,并对其进行了处理。如果在关闭gedit之前关闭了终端,那么gedit也会在关闭终端后立即关闭。这是怎么回事?gedit作为子进程在终端下运行。当您关闭终端时,将向终止子进程的进程发送挂起信号(SIGHUP)。
另一方面,如果您希望您的子进程(此处为gedit)在关闭父终端后仍继续运行,您将希望您的进程免疫挂起信号。这样,关闭终端就不会关闭子进程。nohup正是这样做的。
nohup不断开命令与终端的连接。,它使脚本忽略SIGHUP,并将stdout/stderr重定向到文件nohup.out,以便在注销后命令可以在后台继续运行。如果关闭shell /终端或注销,则命令不再是该shell的子级。它属于init过程。如果您在pstree中搜索,您将看到它现在属于process 1 (init)。因为前景不再存在,所以不能返回到前台。
发布于 2018-01-12 15:14:37
除了@sourvac所写的内容外,这也是人们在一天前通过只有文本的哑终端登录时留下的遗产,通常是通过(原始的,模拟的110波特)调制解调器:“挂断”实际上是“挂断电话”。
一个pid是免疫挂断信号将继续运行,即使你注销和挂断电话。这在缓慢的计算机上非常有用,当作业连续运行数小时时,您不能只停留在登录状态(其他人需要使用终端,您需要使用电话,线路中的静态可能会“模糊”连接,等等)。
https://askubuntu.com/questions/995179
复制相似问题