nohup(no hang-up)命令用于在Linux中运行需要长时间执行的命令,即使关闭终端或断开连接,该命令也会继续执行
打开终端。
输入 nohup 命令,后跟您要执行的命令。例如,如果您要运行名为 my_script.sh 的脚本,您可以输入:
nohup ./my_script.sh &
这里,& 符号将命令放入后台运行,这样您就可以继续在终端中执行其他命令。
nohup 命令会将输出重定向到一个名为 nohup.out 的文件中。如果您想将输出重定向到其他文件,可以使用以下语法:nohup ./my_script.sh > output.log &
这将把输出保存到名为 output.log 的文件中。
logrotate 命令。首先,创建一个名为 logrotate.conf 的配置文件,包含以下内容:/path/to/output.log {
size 100M
rotate 5
compress
missingok
notifempty
create 0640 user group
}
这将限制 output.log 文件的大小为100MB,并在超过限制时创建一个新的文件。最多保留5个旧文件,并对旧文件进行压缩。如果文件不存在,不会报错。如果文件为空,不进行轮转。新文件的权限为0640,属主为用户,属组为组。
crontab 设置定期运行 logrotate。运行 crontab -e 打开当前用户的 crontab 文件,然后添加以下行:0 * * * * /usr/sbin/logrotate /path/to/logrotate.conf
这将在每小时的第0分钟运行 logrotate 命令,检查并处理日志文件。
现在,您已经成功使用 nohup 命令在Linux中处理需要长时间运行的命令。即使关闭终端或断开连接,这些命令也将继续执行。