在Linux中,nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。默认情况下,nohup
会将输出重定向到名为nohup.out
的文件中。如果你想自定义日志格式,可以使用以下方法:
使用exec
命令重定向输出:
在启动程序之前,使用exec
命令将标准输出和标准错误重定向到一个自定义的日志文件,并使用logger
命令来设置日志格式。例如:
#!/bin/bash
exec &> >(logger -t myapp -p local6.info)
nohup your_command &
这里,-t myapp
设置了日志的标签为myapp
,-p local6.info
设置了日志的优先级为local6.info
。你可以根据需要修改这些参数。
使用script
命令记录会话:
script
命令可以用来记录终端会话。你可以使用它来记录nohup
命令的输出,并自定义日志格式。例如:
script -q -c "nohup your_command &" myapp_log.txt
这里,-q
选项表示静默模式,-c
选项后面跟着要执行的命令。输出将被记录到myapp_log.txt
文件中。
使用tee
命令实时查看和记录日志:
你可以使用tee
命令将nohup
的输出同时显示在终端并记录到自定义格式的日志文件中。例如:
nohup your_command 2>&1 | tee >(sed 's/^/[$(date)] /' >> myapp_log.txt)
这里,sed
命令用于在每行开头添加当前日期和时间。你可以根据需要修改sed
命令来自定义日志格式。
请注意,这些方法可能需要根据你的具体需求进行调整。在实际使用中,你可能需要尝试不同的方法,以找到最适合你的场景的解决方案。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: linux中修改权限命令的作用有哪些