目录
背景
在Debian 12系统中,原本部署了两个tomcat,结果总是遇到CPU飙升到影响应用正常使用的程度,找了很久原因还是没有找到。 每次都是将服务重启之后才能正常使用,一直想做定时重启也由于没有时间弄。 这次趁着有空余时间,记录一下处理过程。
过程记录
1、编辑sh文件,完成重启功能
Debian 下可以通过nano工具实现文件编辑,在需要设定定时重启的tomcat的bin目录下执行命令:
sudo nano restart.sh
如果当前目录下没有该restart.sh会自动创建
该文件内容如下:
#!/bin/bash
. /etc/profile
cd /opt/tomcat/apache-tomcat-9.0.41/bin/
sh shutdown.sh >output.txt 2>&1 && sh startup.sh >>output.txt 2>&1
. /etc/profile 命令用于确认环境变量
cd xxxx 跳转到当前需要重启的tomcat的bin目录
sh文件里的的 1、2 实际是 指的:
在 Linux 中有三个文件描述符,默认被系统所占用:
0 (Standard In 简写 stdin ):标准输入,通常来自键盘。
1 (Standard Out 简写 stdout):标准输出,通常指向终端窗口或屏幕。
2 (Standard Error 简写 stderr):标准错误输出,也通常指向终端窗口或屏幕,但专门用于显示错误信息。
> 与>>
> 和 >> 是用于重定向输出的符号,允许将命令的输出保存到文件中。区别在于:
>是覆盖重定向,将命令的输出重定向到指定的文件中,如果文件已经存在,则会覆盖原有内容;如果文件不存在,则会创建新文件。
>>是追加重定向,将命令的输出追加到指定文件的末尾,不会覆盖已有内容。如果文件不存在,则会创建新文件。
>只能将标准输出重定向(对于标准错误依然会显示在屏幕上)
>&: 这个指令实际是实现将标准输出或标准错误都重定向输出;
>&
后面既可以识别文件,可以识别文件描述符。当
>&
后面接文件时,表示将标准输出和标准错误输出重定向至文件。当
>&
后面接文件描述符时,表示将前面的文件描述符重定向至后面的文件描述符。
例如,将标准错误文件描述符2重定向至标准输出文件描述符1:
2>&1 实际指的就是 将文件描述符2即标准错误输出重定向到文件描述符1即标准输出。。。。哈哈有点绕。。。
&& :表示表示前一条命令执行成功后,才执行后一条命令。
结合起来后面两句命令的意思就是:
sh shutdown.sh >output.txt 2>&1 && sh startup.sh >>output.txt 2>&1
表示执行shutdown.sh并将标准输出写入output.