本文主要讲解“如何在Linux中使用nohup命令”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。下面就让主机频道带你学习如何在Linux中使用nohup命令吧!
什么是nohup nohup是Linux和Unix系统中的一个命令,其功能是在终端退出时保持进程在后台运行。它的全称是“no hang up”,意思是“不要挂断”Nohup命令允许您在退出终端或关闭SSH连接后继续运行该命令。
nohup命令的基本语法如下:
诺胡普司令部【ARGS...】【& gt输出文件2》错误文件】& amp这些参数具有以下含义:
命令:需要在后台运行的命令或脚本。
ARGS:命令或脚本的参数。
& gt输出文件:输出被重定向到指定的文件。
2 & gt错误文件:错误信息被重定向到指定的文件。
& amp:在后台运行命令。
nohup命令的执行过程分为以下步骤:
nohup命令将当前shell的所有标准输入、标准输出和标准错误输出重定向到/dev/null设备,以避免被关闭终端的信号中断。
Nohup命令将进程置于后台,并将进程的PID输出到终端。
该流程开始执行并将标准输出和标准错误输出重定向到指定文件。
用户可以退出终端或关闭终端窗口,进程仍在后台运行。
如何使用nohup使用nohup命令非常简单,只需遵循上面的基本语法即可。以下是使用nohup命令的一些示例:
在后台运行命令要在后台运行命令,只需在命令行中输入以下命令:
nohup COMMAND & amp例如,在后台运行Bash脚本:
nohup bash test.sh & amp标准输出被重定向到文件nohup bash test . sh》;标准输出。标准错误输出被重定向到文件nohup bash test . sh 2》;stderr.txt & amp将标准输出和标准错误输出重定向到文件1。重定向到同一文件。
nohup bash test.sh & gtoutput.txt 2 & gt& amp1 & amp步骤2重定向到不同的文件
nohup bash test.sh & gtstdout.txt 2 & gtstderr.txt & amp3.一个更复杂的例子是重定向标准输入(stdin):
诺厄普。/my program & gt;foo.out 2 & gtfoo.err & lt/dev/null这里还有一个
这是为了解决一个实际问题:SSH会话经常拒绝注销(或挂断),因为它们不想丢失与后台作业交互的数据。当您遇到这个问题时,可以使用上面的命令通过三个重定向来解决它。
Nohup后台进程管理使用jobs命令查看当前shell中后台运行的任务列表,包括任务编号、状态和命令。
例如,我们在后台执行sleep 1000命令,并使用jobs命令查看:
工作岗位
运行nohup sleep 1000 & amp其中,方括号中的数字表示任务编号,加号或减号表示任务的优先级,Running表示任务正在后台运行。此外,还有其他可能的状态,包括已停止和已完成。
我们还可以使用fg命令将一个后台任务移动到前台继续运行,例如:
$ fg %1的这个命令会将任务编号为1的任务移到前台并继续执行。如果要暂停或恢复任务,可以使用Ctrl-Z键在当前shell中发送SIGTSTP信号。
$ fg %1
nohup睡眠1000
Z
【1】+Stopped nohup sleep 1000如果您希望此时恢复运行,可以使用bg命令:
$ bg %1
nohup睡眠1000 & amp如果要终止任务,可以使用kill命令:
$ kill %1
【1】+Terminated nohup sleep 1000如果你想杀死所有后台任务,但你发现一个接一个很麻烦,你可以使用disse命令来解决它:
命令$ disown -a可以杀死所有后台任务,但不会有任何提示。您可以通过jobs命令进行确认。
评论前必须登录!
注册