一、nohup不输出日志配置输出
nohup是一个常用的在linux/unix系统下的后台运行命令,使用nohup命令后,即使用户退出终端,程序也会继续运行,并且nohup命令会自动把程序的标准输出和标准错误输出重定向到nohup.out文件中,但是这种方式有些时候并不是我们所需的。为了不输出日志,我们需要配置nohup命令,可以有如下两种方式:
1. 在nohup命令后添加“&>/dev/null”:这种方式会将程序的标准输出和标准错误输出都重定向到系统的“垃圾桶”中,从而达到不输出日志的效果。
nohup command &>/dev/null &
2. 重定向到自定义的文件:这种方式会将程序的标准输出和标准错误输出重定向到一个自定义的文件中,从而达到不输出日志的效果。可以按照如下代码进行配置:
# 创建日志文件 touch my.log # 使用nohup命令执行程序,并将程序的标准输出重定向到my.log文件中 nohup command >my.log 2>&1 &
二、nohup日志选取
在使用nohup命令时,有一些与nohup不输出日志相关的日志,这里选取一些常用的与nohup不输出日志相关的日志进行详细的讲解:
1. nohup.out:nohup命令默认情况下会将程序的标准输出和标准错误输出重定向到nohup.out文件中,如果不需要输出日志,可以将nohup.out文件删除或者清空。
# 删除nohup.out文件 rm nohup.out # 清空nohup.out文件 > nohup.out
2. /var/log/syslog:系统日志是记录系统各种事件的重要文件,其中包括应用程序的日志信息,而当我们通过nohup命令后台运行程序时,程序的日志信息就会被写入到syslog文件中。如果需要查找应用程序的日志信息,可以在syslog文件中进行搜索或者查看。
# 查找包含nohup的相关日志信息 grep "nohup" /var/log/syslog
3. /var/log/messages:与syslog相似,messages也是记录系统的事件信息,但是它记录的是一些非内核级别的事件,如网络日志、邮件日志、系统服务日志等,当我们使用nohup命令后台运行的程序出现问题时,可能会在messages中记录相关的错误信息。
# 查找包含nohup的相关日志信息 grep "nohup" /var/log/messages
三、结合实例讲解nohup不输出日志
下面给出一个使用nohup命令的具体实例,并讲解如何不输出日志。
在linux服务器上有一个测试程序test.py,代码如下:
import time while True: print('hello world') time.sleep(1)
如果我们想要在后台运行该程序并且不输出日志,可以使用如下命令:
# 使用nohup命令执行程序,并将标准输出和标准错误输出重定向到自定义的文件my.log中 nohup python test.py >my.log 2>&1 &
执行完成后,该程序就会在后台运行,不输出日志。
四、总结
nohup命令的使用是我们在linux/unix系统下开发和运维工作中经常要用到的,通过对nohup不输出日志的配置与实现的详细讲解,我们可以更好地理解nohup命令的功能和作用,从而更加高效地使用该命令。