nohup
(no hang-up)命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。将nohup
命令的输出重定向到文件是一种常见的做法,以便在程序运行过程中记录输出信息或错误信息。
以下是一些使用nohup
命令输出重定向到文件的技巧:
将标准输出和标准错误输出重定向到同一个文件:
nohup your_command > output.log 2>&1 &
这里,your_command
是你要运行的命令,output.log
是输出文件的名称。2>&1
表示将标准错误输出(文件描述符2)重定向到标准输出(文件描述符1),&
表示将命令放入后台运行。
将标准输出和标准错误输出分别重定向到不同的文件:
nohup your_command > output.log 2> error.log &
这里,output.log
是标准输出文件的名称,error.log
是标准错误输出文件的名称。
如果你想在程序运行过程中实时查看输出文件的内容,可以使用tail
命令:
tail -f output.log
这里,-f
选项表示实时查看文件内容。
如果你想限制输出文件的大小,可以使用logrotate
工具。首先创建一个logrotate
配置文件,例如/etc/logrotate.d/your_command
,并添加以下内容:
/path/to/output.log {
size 10M
rotate 5
compress
missingok
notifempty
create 0640 user group
}
这里,size 10M
表示当日志文件大小达到10MB时进行轮转,rotate 5
表示保留5个轮转文件,compress
表示压缩轮转文件,missingok
表示如果日志文件不存在,不报错,notifempty
表示如果日志文件为空,不进行轮转,create 0640 user group
表示创建新的日志文件,权限为0640,属主为用户,属组为组。
如果你想在程序运行过程中监控输出文件的行数,可以使用wc -l
命令:
wc -l output.log
这里,-l
选项表示统计行数。
通过这些技巧,你可以更好地管理和监控使用nohup
命令运行的程序的输出。