标签:忽略 details block 错误输出 输出 自己 comm 地方 ring
第一种:支持后台运行,但是关闭终端的话,程序也会停止
command &
第二种:支持后台运行,关闭终端后,程序也会继续运行
nohup command &
但是,当我自己使用nohup这个命令时,会报下面这样的错。
nohup: ignoring input and appending output to ‘nohup.out’
或者这样的错。
nohup: failed to run command /etc/nginx_check.sh‘: Permission denied nohup: failed to run command /etc/nginx_check.sh': Permission denied
要解决的话,我们首先先得谈一下Linux重定向。
0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。
我们可以直接通过输出重定向>(或>>,表示追加)将某种输出重定向到其他地方,如设备,文件。
值得一提的是,Linux下还有一个特殊的文件/dev/null
,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null
。
比如说:
ls > ls.log #标准输出重定向
ls 2> ls.log #标准错误重定向
ls > /dev/null #重定向到null设备,相当于直接忽略输出
但是,有时候,我们想把标准输出以及错误输出一起重定向某个文件,这是可以通过 2>&1 实现,也可以通过两个同时重定向到某个文件。
所以,可以这样:
ls >ls.log 2>&1 #标准输出重定向到ls.log,而错误又重定向到标准输出,这两个位置不可换
ls 2>>ls.log 1>>ls.log
所以最后,我们可以这样来运行我们的程序。
nohup python hello.py >hello.log 2>&1 &
这样,我们把所有的输出都存在了hello.log文件中。
参考
标签:忽略 details block 错误输出 输出 自己 comm 地方 ring
原文地址:https://www.cnblogs.com/IvyWong/p/9786226.html