centos reader?centos怎么下载软件

其实centos reader的问题并不复杂,但是又很多的朋友都不太了解centos怎么下载软件,因此呢,今天小编就来为大家分享centos reader的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

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为什么安装libhiredis-dev

1、linux下如何安装hiredis

1)下载地址

2)编译和安装

解压后的文件夹执行 make;make install;

3)头文件包含

include<hiredis/hiredis.h>

4)编译选项

makefile文件中加入 LDFLAGS=-lhiredis

2、主要结构

主要关注2个结构体,

1)redisContext

//对应与Redis的连接

[cpp] view plain copy

/* Context for a connection to Redis*/

typedef struct redisContext{

int err;/* Error flags, 0 when there is no error*/

char errstr[128];/* String representation of error when applicable*/

int fd;

int flags;

char*obuf;/* Write buffer*/

redisReader*reader;/* Protocol reader*/

enum redisConnectionType connection_type;

struct timeval*timeout;

struct{

char*host;

char*source_addr;

int port;

} tcp;

struct{

char*path;

} unix_sock;

} redisContext;

2)redisReply

//对应redis命令的回复结果

[cpp] view plain copy

/* This is the reply object returned by redisCommand()*/

typedef struct redisReply{

int type;/* REDIS_REPLY_**/

long long integer;/* The integer when type is REDIS_REPLY_INTEGER*/

int len;/* Length of string*/

char*str;/* Used for both REDIS_REPLY_ERROR and REDIS_REPLY_STRING*/

size_t elements;/* number of elements, for REDIS_REPLY_ARRAY*/

struct redisReply**element;/* elements vector for REDIS_REPLY_ARRAY*/

} redisReply;

2、主要接口

主要有4个接口,

1)redisContext* redisConnect(const char*ip, int port)

//连接redis。

2)void*redisCommand(redisContext*c, const char*format,...);

//执行redis操作命令

3)void freeReplyObject(void*reply);

//释放执行redis操作命令回复的内存

4)void redisFree(redisContext*c);

//释放连接上下文。

3、异常处理

主要4种异常情况会出现,

1)获得的redisContext指针为null

异常处理办法:再次尝试与redis建立新的连接上下文。

2)获得的redisContext指针err不为0

异常处理办法:再次尝试与redis建立新的连接上下文。

3)获得的redisReply指针为null

异常处理办法:断开redis连接再次与redis建立连接并尝试执行命令。

4)获得的reply指针的type不是期望的类型,

异常处理办法:断开redis连接再次与redis建立连接并尝试执行命令。

至此hiredis了解完毕,接下来就可以在其他模块中调用了。

玩转Ubuntu 18 桌面版

版本:Ubuntu 18.04.2 LTS

对于Ubuntu 18.04.2 LTS的镜像源更新,您可以将系统自带的/etc/apt/sources.list文件备份,然后替换为以下内容,以使用清华大学开源软件镜像站的软件源镜像:

安装常用软件:

-搜狗输入法:访问pinyin.sogou.com/linux/,点击deb包安装,完成两次安装并输入密码。

-网易云音乐:下载Linux 1.2.0版本,按照指定步骤安装。

- Google浏览器:终端执行相应命令确保安装成功。

- WPS:访问linux.wps.cn/下载二进制包,点击deb包进行安装。

- Docker:适用于Ubuntu、Debian、Centos等主流Linux发行版。

-其他软件:按照具体软件说明安装。

安装工具软件:

- Sublime Text 3、Visual Studio Code、Postman、Charles、Shutter、Typora等,分别通过访问其官网或使用终端命令安装。

-添加快捷键:在Settings-Keyboard中添加,然后在键盘上输入快捷键即可。

其他软件:

-百度云盘:访问pan.baidu.com/download进行下载。

-福昕PDF阅读器:访问foxitsoftware.cn/pdf-reader/下载安装。

- uGet:用于文件下载,通过访问ugetdm.com/downloads/下载安装。

- VLC视频播放器:访问videolan.org/vlc/downloads/下载安装。

- Calibre电子书阅读器:访问calibre-project.org/downloads/下载安装。

Java开发工具:

- JDK 12:从Oracle官网下载最新稳定版JDK,确保安装并配置环境变量。具体步骤包括查看安装状态、设置JAVA_HOME环境变量等。

卸载不常用软件:根据个人喜好选择性卸载,可以通过系统软件中心或终端命令进行。

美化终端与主题修改:

-终端采用zsh和oh-my-zsh,提高美观度和易用性。

-修改主题、配色、字体等,增强用户体验,例如安装zsh、oh-my-zsh,设置透明背景、Tango配色方案及文泉译微米黑字体。

其他调整:

-支持农历、隐藏顶部状态栏、实现实时显示网速等个性化设置。

-移植深度桌面以获取更美观的Linux桌面体验。

-修改桌面文件夹位置,提升桌面管理效率。

-设置默认启动项,调整启动顺序。

-自动挂载其他分区,优化系统管理。

-修改Hosts文件,支持网络访问。

-使用deepin-wine-ubuntu安装Windows应用如微信、QQ,实现Windows应用在Linux环境下的流畅运行。

安装360压缩、2345看图王、SQLyog等软件,通过deepin-wine命令行进行安装,并创建快捷方式以方便访问。

备份与还原系统:

-使用LiveCD进行系统备份与还原,确保数据安全。

上述步骤涵盖了Ubuntu 18.04.2 LTS系统的安装、配置、软件安装、个性化设置及系统维护等关键方面,旨在提供一个全面且高效的操作指南。通过遵循这些步骤,用户可以轻松地定制和优化自己的Ubuntu桌面体验。

阅读剩余
THE END