centos kill tomcat?重启tomcat命令
centos 如何停止tomcat ipv6监听
你可以用两个方法做到这个。
方法 1
编辑文件/etc/sysctl.conf,
vi/etc/sysctl.conf
添加下面的行:
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
如果你想要为特定的网卡禁止IPv6,比如,对于enp0s3,添加下面的行。
net.ipv6.conf.enp0s3.disable_ipv6=1
保存并退出文件。
执行下面的命令来使设置生效。
sysctl-p
方法 2
要在运行的系统中禁止IPv6,依次输入下面的命令:
echo 1>/proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1>/proc/sys/net/ipv6/conf/default/disable_ipv6
或者,
sysctl-w net.ipv6.conf.all.disable_ipv6=1
sysctl-w net.ipv6.conf.default.disable_ipv6=1
就是这样。现在IPv6已经禁止了。
centos怎样编写tomcat宕机自动重新启动
一、设置tomcat定时启动
1,首先将tomcat注册为服务,先打开tomcat的bin目录下service.bat文件,修改下面的值,这是sevvice的注册名称和显示名称,一般可使用默认值。
set SERVICE_NAME=Tomcat7
set PR_DISPLAYNAME=Apache Tomcat
【然后修改jvm大小,搜索到--JvmMs 128--JvmMx 256进行修改,因为做成服务启动,启动的时候就不会用到 catalina.bat,也就不会读取里面的jvm设置了。】(可选,可以不设置)
然后运行cmd命令窗口,cd到tomcat的bin目录下,运行下面的命令
service.bat install运行成功过后,会提示服务已经安装成功。
2,制作重启脚本restart.bat,文件内容如下
net stop Tomcat7 net start Tomcat7
3,利用控制面板里面的“任务计划”设置第2步的脚本运行时间计划
4,如果想删除服务,也很简单,先把服务停掉,然后在cmd窗口运行下面的命令即可,后面那个Tomcat7是服务名。
sc delete Tomcat7
需要注意的是,需要先把服务停掉,才能一次删除成功,或者删除之后再停止服务,就会发现服务已经删除成功了。
二、监听tomcat
只要运行start.bat即可,相关配置在config.properties文件中,默认即可,如果服务名不对应就修改关闭和启动命令的服务名即可:net start【Tomcat7】括号中服务名,然后运行start.bat
下面是具体的监听代码:
首先是监听类TomcatMonitor.java:
[java] view plain copy
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Properties;
/**
*@describe:TomcatMonitor.java
*
*@date 2016-7-4
*@author liuweilong
*/
public class TomcatMonitor implements Runnable{
String start="";//系统命令启动
String stop="";//系统命令关闭
String testHttp="";//测试连接地址
int testIntervalTime=1;//测试连接间隔时间,单位为秒
int waitIntervalTime=2;//等待测试间隔时间,单位为秒
int testTotalCount=5;//测试连接总次数
Thread thread=null;
public TomcatMonitor(){
InputStream in= TomcatMonitor.class.getResourceAsStream("config.properties");
Properties p= new Properties();
try{
p.load(in);
stop=p.getProperty("stop");
start=p.getProperty("start");
testHttp=p.getProperty("testHttp");
testIntervalTime=Integer.parseInt(p.getProperty("testIntervalTime"));
waitIntervalTime=Integer.parseInt(p.getProperty("waitIntervalTime"));
testTotalCount=Integer.parseInt(p.getProperty("testTotalCount"));
} catch(Exception e){
e.printStackTrace();
}
System.out.println("*******************初始化成功!*******************");
thread=new Thread(this);
thread.start();
}
public void run(){
System.out.println("正在监控中...");
int testCount=0;
while(true){
testCount=0;
testCount++;
boolean isrun=test();
System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"));
while(!isrun){
if(testCount>=testTotalCount)break;
try{
thread.sleep(testIntervalTime*1000);
} catch(InterruptedException e){
e.printStackTrace();
}
testCount++;
System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"));
isrun=test();
}
if(!isrun){
try{
//关闭tomcat服务
Process proc= Runtime.getRuntime().exec(stop);
thread.sleep(5000);
//启动tomcat服务
System.out.println("测试连接失败,正在重启tomcat");
Process p=Runtime.getRuntime().exec(start);
System.out.println("重启tomcat成功");
}catch(Exception e){
e.printStackTrace();
System.out.println("重启tomcat异常,请查看先关错误信息。。。。。");
}
}
try{
thread.sleep(waitIntervalTime*1000);
} catch(InterruptedException e){
e.printStackTrace();
}
isrun=test();
}
}
public boolean test(){
URL url=null;
try{
url= new URL(testHttp);
} catch(MalformedURLException e){
e.printStackTrace();
}
try{
URLConnection urlConn=url.openConnection();
urlConn.setReadTimeout(15000);
BufferedReader reader= new BufferedReader(new InputStreamReader( urlConn.getInputStream()));//实例化输入流,并获取网页代码
String s;
while((s= reader.readLine())!= null){
return true;
}
} catch(Exception e){
return false;
}
return false;
}
public static void main(String[] args) throws Exception{
TomcatMonitor tm=new TomcatMonitor();
}
}
然后是对应的配置文件config.properties:
[plain] view plain copy
#系统命令启动
start=net start Tomcat7
#关闭
stop= net stop Tomcat7
#测试连接总次数
testTotalCount=3
#连接失败时,再次检测时间间隔,单位为秒
testIntervalTime=3
#连接超时时间,即多少秒tomcat没响应视为宕机,单位为秒
connectionTimeout=15
#tomcat启动时间,防止在tomcat尚未启动完成的时候,程序又去检验tomcat状态,造成尚未启动完成又重新启动,单位为秒
tomcatStartTime=600
#测试连接地址
testHttp=
#正常情况下,每次检测间隔时间,单位为秒
waitIntervalTime=30
最后是启动的start.bat:
[plain] view plain copy
java-cp. TomcatMonitor
centos 中Tomcat日志文件catalina.out的切割
在 CentOS中,Tomcat日志文件 catalina.out随着使用时间的增长变得庞大,浏览起来变得不便利。为了解决这个问题,我们可以利用系统自带的 logrotate工具进行日志文件切割。以下是具体的步骤:
首先,我们需要在/etc/logrotate.d目录下创建一个新的配置文件。配置文件内容如下:
<pre>/usr/local/apache-tomcat-8.5.97/logs/catalina.out{
copytruncate
daily
rotate 5
missingok
compress
dateext-%Y%m%d
notifempty
size 10M
olddir/var/log/tomcat
}
这个配置定义了日志文件切割的具体参数。`copytruncate`确保在日志文件还在被使用时,将其备份并截断。`daily`表示日志文件按每天进行切割。`rotate 5`保留最近5个备份,`missingok`忽略日志文件不存在的警告。`compress`启用gzip压缩。`dateext-%Y%m%d`在新文件名中添加日期,便于区分。`notifempty`避免空文件被转储,`size 10M`设置日志大小达到10MB时触发切割。`olddir/var/log/tomcat`指定了旧日志文件的存放位置。
为了测试配置,可以直接运行 `/usr/sbin/logrotate-vf/etc/logrotate.d/tomcat`。实际上,logrotate的执行是由系统中的crontab定时任务控制的,crontab每天会自动执行 `/etc/cron.daily/logrotate`脚本。
这样设置后,Tomcat的日志文件catalina.out就会按指定规则定期被切割和管理,方便我们查看和管理。