nohup命令及其输出文件
今天在linux上部署了wdt程序,在SSH客户端上运行了./start-dishi.sh,并成功启动。 关闭SSH客户端后,正在运行的程序也同时关闭。 怎样才能确保程序在推出SSH客户端后继续运行? 在网上查找资料,发现需要使用nohup命令。
完美的解决方案: nohup ./start-dishi.shoutput 21
现对上面的命令进行下解释
用途:不斩钉截铁地执行。
语法: nohup Command [ Arg . ] [ ]
说明: nohup命令执行在Command参数和相关Arg参数中指定的命令,并忽略所有SIGHUP信号。 注销后,使用nohup命令运行后台程序。 要在后台运行nohup命令,请在命令末尾添加一个表示" and "的符号。
操作系统有三个常见的流程。
0 :标准输入流stdin
1 :标准输出流stdout
2 :标准错误流程stderr
一般使用console.txt时,实际上是1console.txt的省略用法; console.txt实际上是0 console.txt的省略用法。
下面步入正题:
nohup ./start-dishi.shoutput 21
说明:
1 .拥有的命令行,前提是terminal (终端)关闭或电脑死机时程序仍在运行) )将程序交给服务器)。
2. 21的含义
这意味着将标准错误(2)重定向到标准输出,因为标准输出将导入到文件output中,所以标准错误和标准输出都将导入到文件output中。 为什么需要将标准错误重定向到标准输出,归结为标准错误没有缓冲区,而stdout没有。 因此,output 2output文件output将打开两次,stdout和stderr将竞争覆盖。 这肯定不是我门想要的。
所以才会有人写nohup ./command.sh output 2output
=====================================
最后说明/dev/null文件的作用。 这是个无底洞,什么都可以对着这里,但打不开。 所以一般大的stdou和stderrxhdcc在不关心的时候可以利用stdout和stderr指向这里./command.sh /dev/null 21