在CentOS系统中,nohup
命令用于在后台运行程序,即使关闭终端或断开SSH连接,程序也会继续运行。以下是一些使用nohup
命令的技巧:
运行程序并记录日志:
使用nohup
命令运行程序时,默认会将输出记录在nohup.out
文件中,该文件通常位于当前目录下。
nohup ./my_script.sh > output.log 2>&1 &
这里,2>&1
表示将标准错误(文件描述符2)重定向到标准输出(文件描述符1),&
表示在后台运行命令。
自定义日志文件路径: 如果不想将日志记录在当前目录下,可以使用重定向操作将日志输出到指定文件。
nohup ./my_script.sh > /path/to/your/logfile.log 2>&1 &
logrotate
工具进行日志轮转,防止单个日志文件过大。sudo vi /etc/logrotate.d/myapp
配置文件中可以设置日志分割周期、文件扩展名、分割方式等。/var/log/myapp.log {
daily rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
}
上述配置表示每天轮转一次日志文件,保留最近7天的日志文件,并压缩旧的日志文件。tail -f
命令实时查看日志文件的更新。tail -f output.log
这将持续输出output.log
文件的最新内容。ps
命令找到进程的PID,然后使用kill
命令终止进程。ps aux | grep my_script.sh
kill [PID]
将[PID]
替换为实际的进程ID。rsync
或scp
等工具将日志文件从远程服务器传输到本地计算机。rsync -avz user@remote_host:/path/to/your/logfile.log /local/path/
通过这些技巧,你可以更有效地管理在CentOS系统中使用nohup
命令运行的程序的日志。