开发
库
1. libogg
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libogg.html
报错:oggenc: Command not found
需要安装libogg
下载
https://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.xz
安装
1 | ./configure --prefix=/usr \ |
2. tar.xz如何解压
1 | xz -d ***.tar.xz |
系统
centos7 安装
1. 用到的工具有:
CENTOS7ISO镜像,U盘一个(最好16G),ultraiso
- a、安装ultraiso,,打开-镜像文件-写入U盘。写入成功后,一定要把安装镜像拷备到U盘里
- b、重启电脑,将BIOS启动设置为U盘启动
- c、进入图形化安装界面。选择安装源-选择第二项是选择ISO文件-选择我们刚才拷到U盘的ISO镜像-点左上角的”完成”
- d、选择打开网络,否则无法上网
- e、完成
2. CentOS 7 yum安装Maven、Ant
1 | wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo |
ubuntu 安装
1. 下载iso文件
2. 虚拟机安装为了可以通过ssh工具远程访问,网络需要设置成桥接网卡
3. 如需要远程root登录参考《Linux命令》里内容
新云服务器CentOS7后应该做的准备
1. 升级
1 | yum -y update |
2. 更改hostname
1 | # hostnamectl --static set-hostname nealname |
3. 替换 /etc/locale.conf 的内容,解决LC_CTYPE: cannot change locale (UTF-8)
1 | LANG="en_US.utf8" |
4. 安装基本工具
1 | # yum install -y vim tree htop wget telnet curl unzip gcc pcre-devel zlib-devel perl-devel |
5. 升级openssl
1 | # cd /usr/local/src |
6. 解决openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory错误
1 | ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 |
7. 创建普通用户
1 | # useradd nealname |
8. 安装Java环境
1 | yum search openJDK |
9. 安装nginx
1 | $ sudo yum install -y nginx |
10. 阿里云控制台
- 开通SLB
- 配置域名A记录
- 禁止外网访问 安全组
系统服务
安装g++
1. 查询是否缺失相对应的包
1 | rpm -qa | grep "g++" |
2. 确认系统是否安装
在确认系统未安装之后,查询可安装的相对应的功能的包:
1 | yum whatprovides "*/g++" |
3. 安装
上面步骤应该会查询到安装包,如果多个是一个列表,可以选择一个来安装,本例查询到的是gcc-c++-4.4.7-4.el6.x86_64,则输入下面命令安装
1 | yum install gcc-c++-4.4.7-4.el6.x86_64 |
4. 确认是否安装
直接输入g++ -v,如果有版本号则表示安装成功。
CentOS6.4环境下布署LVS+keepalived
环境:
- CentOS 6.4
- ipvsadm 1.2.4
- keepalived 1.1.17
1. 查看kernel-devel是否安装
1 | rpm -q kernel-devel |
如果没装,查看内核版本
1 | uname -r |
2.6.32-358.el6.x86_64
这个表示64位的
In CentOS 5, there are three kernel-devel packages available:
- kernel-devel (both 32- & 64-bit architectures)
- kernel-xen-devel (both 32- & 64-bit architectures)
- kernel-PAE-devel (32-bit architecture only)
2. 直接用下面安装
1 | yum install kernel-devel |
3. 下载
1 | wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz |
configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files.
解决办法:
1 | yum -y install openssl-devel |
configure: error: Popt libraries is required
解决办法:
1 | yum install popt-devel |
安装完之后keepalived的配置:
1 | cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ |
vi /etc/keepalived/keepalived.conf
!Configuration File for keepalived
1 | global_defs { |
安装成功应该能看到如下信息
1 | ipvsadm -v |
4. 查看IPVS表
1 | ipvsadm -ln |
5. 启动keepalived
1 | service keepalived start |
6. 查看lvs_server服务器启动keepalived的日志信息
1 | tail -f /var/log/messages |
安装logstash+kibana+elasticsearch+redis搭建集中式日志分析平台
1. 下载elasticsearch。
1 | wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.tar.gz |
2. 解压后,进入bin目录。执行如下命令,让elasticsearch以前台方式启动:
1 | ./elasticsearch -f |
3. 访问默认的9200端口
1 | curl -X GET http://localhost:9200 |
4. 安装Redis
执行如下命令,使之在控制台输出debug信息:
1 | redis-server --loglevel verbose |
5. logstash日志生成器(shipper)。
1 | wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz |
6. 新建一个配置文件:shipper.conf,
1 | cd logstash-1.4.2 |
其内容如下
1 | input { |
7. 启动shipper(其中-f是指以指定的配置文件启动,-l是设置logstash本身的日志位置。&是以守护进程方式启动。)
1 | bin/logstash agent -f conf/shipper.conf -l logstash_shipper.log & |
终端窗口将出现如下提示信息:
1 | Using milestone 2 output plugin 'redis'. This plugin should be stable, but if you see strange behavior, please let us know! For more information on plugin milestones, see http://logstash.net/docs/1.3.2/plugin-milestones {:level=>:warn} |
然后在终端窗口直接按回车,将出现如下信息:
1 | { |
这个json信息将发送给redis, 同时redis的终端窗口将出现类似下面的提示信息:
1 | [32470] 16 Jan 17:09:23.604 - Accepted 127.0.0.1:44640 |
8. logstash日志索引器(indexer)
新建一个配置文件:indexer.conf
其内容如下:
1 | input { |
启动indexer(其中-f是指以指定的配置文件启动,-l是设置logstash本身的日志位置。&是以守护进程方式启动。)
1 | bin/logstash agent -f conf/indexer.conf -l logstash_indexer.log & |
启动logstash的图形界面服务
1 | bin/logstash-web |
修改kibana端口,文件logstash-1.4.2/lib/logstash/kibana.rb
1 | settings.port = 9292 |
centos 安装 ntpdate 并同步时间
1. 在命令行中做如下操作,来安装ntpdate
1 | yum install -y ntp |
2. 继续在命令行中操作,进行同步时间
1 | ntpdate time.nist.gov |
rsync 文件同步
1. 安装
1 | yum install rsync |
2. 设定密码文件
密码文件格式很简单,rsyncd.secrets的内容格式为:
用户名:密码
1 | root:mike |
3. 启动rsync服务器
1 | /usr/bin/rsync --daemon |
4. 设定 /etc/xinetd.d/rsync, 简单例子如下:
1 | # default: off |
上述, 主要是要打开rsync這個daemon, 一旦有rsync client要连接時, xinetd会把它转介給 rsyncd(port 873)。然后service xinetd restart, 使上述设定生效.
5. rsync服务器和防火墙
Linux 防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。
1 | iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT |
6. 实例:
列出rsync 服务器上的所提供的同步内容
1 | rsync --list-only root@192.168.145.5:: |
rsync客户端同步数据
1 | rsync -avzP --password-file=/etc/rsyncd.secrets root@192.168.201.5::home home |
让rsync客户端自动与服务器同步数据
step1:创建同步脚本和密码文件
1 | mkdir /etc/cron.daily.rsync |
编辑rhel4home.sh,内容是如下的:
1 |
|
接着我们修改 /etc/rsyncd/rsync5root.secrets的内容;
1 | # echo "mima" > /etc/rsyncd/rsync5root.secrets |
step2:修改crond服务器的配置文件 加入到计划任务
1 | #crontab -e |
加入下面的内容:
1 | # Run daily cron jobs at 4:10 every day backup rhel4 data: |
注:
第一行是注释,是说明内容,这样能自己记住。
第二行表示在每天早上4点10分的时候,运行 /etc/cron.daily.rsync 下的可执行脚本任务;
7. 要重启crond 服务器;
1 | killall crond 注:杀死crond 服务器的进程; |
wget安装
1 | yum -y install wget |
centos7 iptables
1. 关闭firewall:
1 | systemctl stop firewalld.service #停止firewall |
2. 安装iptables防火墙
1 | yum install iptables-services #安装 |
vi /etc/sysconfig/iptables #编辑防火墙配置文件
1 | # Firewall configuration written by system-config-firewall |
:wq! #保存退出
1 | systemctl restart iptables.service #最后重启防火墙使配置生效 |
3. Failed to start IPv4 firewall with iptables.
备份iptables配置文件
yum remove iptables
yum remove iptables-services
重复第1步
centos7 安装jdk8
1 | yum -y list java* |
maven 安装
1 | wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo |
centos7 安装docker
1 | yum install epel-release |
其他服务
Centos 7下一键安装ffmpeg
1. 安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持
1 | yum install -y epel-release |
2. 安装Nux-Dextop源
1 | #导入一个Code |
3. yum安装ffmpeg
1 | yum install -y ffmpeg |
Centos下搭建NTP时间服务器
NTP协议可使多台客户机的时间与指定的NTP服务器的时间保持一致。在实际生产过程中,保证所有服务器的时间同步还是很有必要的。
1. 安装NTP服务
1 | yum install ntp #安装NTP时间服务器,默认端口是使用了Network Time Protocol Daemon(UDP 123 port) |
2. NTP相关命令
/usr/sbin/ntpd NTP服务的守护进程,配置文件为/etc/ntp.conf 。
/usr/sbin/ntpdate 用来连接NTP服务器命令,比如ntpdate 192.168.6.51 。
/usr/sbin/ntpq NTP查询命令
git库的简单安装
1. 首先需要安装Git,可以使用yum源在线安装
1 | yum install -y git |
2. 创建一个git用户,用来运行git服务
1 | adduser git |
3. 初始化git仓库:这里我们选择/data/git/learngit.git来作为我们的git仓库
1 | git init --bare learngit.git |
4. 保证里面的所有文件把owner改为git:
1 | chown git:git learngit.git |
5. 客户端clone
1 | git clone git@192.168.1.130:/data/git/learngit.git |
6. 出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
1 | git:x:1001:1001:,,,:/home/git:/bin/bash |
最后一个冒号后改为:
1 | git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell |
搭建svn
1. 通过 yum install subversion来安装
1 | svnserve --version |
2. 建立svn目录库
1 | mkdir svn |
3. 进入版本库中的配置目录conf,此目录有三个文件:
svn服务综合配置文件(svnserve.conf)
1 | anon-access = none |
用户名口令文件(passwd)
1 | john.zhang = zh123456 |
权限配置文件(authz)
1 | [groups] |
4. 修改/root/.subversion/servier选项
1 | store-plaintext-passwords = yes |
5. 启用svn
1 | svnserve -d -r /www/svn/ |
6. 修改防火墙,开放3690端口
1 | -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT |
7. 建立test目录进行上传svn测试
1 | mkdir test |
8. svn提交代码
1 | svn ci -m "20160627" |
9. svn添加新文件到库中
1 | svn add */*.md |
NodeBB论坛安装
1. 环境准备
1 | yum -y update |
CentOS 7
1 | yum -y install epel-release |
安装redis 和 npm等
1 | yum -y install redis |
启动redis
1 | systemctl start redis |
2. 下载NodeBB
1 | cd /path/to/nodebb/install/location |
3. 安装nodebb
1 | cd nodebb |
4. 启动
1 | ./nodebb start |
countly安装
1. 安装 ubuntu
2. 下载 countly
3. 安装 nodejs 4以上
1 | curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - |
4. 安装 countly
1 | sh ./countly.install.sh |
centos 6.x 安装 countly
1. 修改bin\countly.install_rhel.sh
如果安装了nodejs mongodb nginx,则注释掉相应语句
2. 解决问题 error: #error This version of node/NAN/v8 requires a C++11 compiler
安装devtoolset-3
1 | rpm -ivh https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/epel-6-x86_64/download/rhscl-devtoolset-3-epel-6-x86_64.noarch.rpm |
安装完毕后使用命令,临时覆盖系统原先的gcc引用
1 | scl enable devtoolset-3 bash |
若想永久覆盖,可在.bashrc中添加
1 | source /opt/rh/devtoolset-3/enable |
然后再继续npm install,就能够正常安装以前无法编译通过的module了
3. 运行countly.install_rhel.sh安装
4. 启动nginx
1 | service nginx restart |
默认是80端口,如果被占修改nginx配置文件
5. 启动countly
countly start
Tomcat
1. 为了保证get数据采用UTF8编码,在server.xml中进行了如下设置(URIEncoding=”UTF-8”):
1 | <Connector port="8080" maxThreads="150" minSpareThreads="25" |
2. catalina.out 日志分割
安装cronolog
1 | wget http://cronolog.org/download/cronolog-1.6.2.tar.gz |
查看cronolog安装后所在目录(验证安装是否成功)
1 | which cronolog |
一般情况下显示为:/usr/local/sbin/cronolog
打开catalina.sh文件
找到下面行并把它用 # 注释掉
1 | touch "$CATALINA_OUT" |
1 | CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out |
改为:
1 | CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out |
1 | org.apache.catalina.startup.Bootstrap "$@" start \ |
改为:
1 | org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \ |
3. Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式,按天存放,解决catalina.out日志文件过大问题
准备jar包:
log4j-1.2.17.jar (从 下载 )
tomcat-juli.jar, tomcat-juli-adapters.jar (从 下载 ,根据你的Tomcat版本选择对应的分支)
将上面的三个jar包拷贝到 Tomcat 的 lib 目录下;
将 tomcat-juli.jar 拷贝到 Tomcat 的 bin 目录下,替换原有的jar包;
修改 Tomcat 的 conf/context.xml 文件,
将
(增加 swallowOutput=”true” 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键 在官网及网上找了许多资料都没有提及。);
删除 Tomcat 的 conf/logging.properties 文件(或者重命名-建议);
在 Tomcat 的 lib 目录下创建 log4j.properties 文件:
配置Lua运行环境
1 | wget http://www.lua.org/ftp/lua-5.3.1.tar.gz |
修改Makefile文件
1 | vim Makefile |
1 | yum install -y readline-devel ncurses-devel |
通过yum安装gcc 4.9 5.2等高版本gcc
gcc 4.9 安装
1 | yum install centos-release-scl -y |
gcc 5.2 安装
1 | yum install centos-release-scl -y |
Hyperic HQ系统监控
安装 Hyperic HQ 5.8.2.1 中文版
1. 环境描述查询
1 | cat /etc/issue |
2. 安装文件准备
下载安装文件: hyperic-hq-installer-x86-64-linux-5.8.2.1.tar.gz ,放在 /work/temp目录下
3. 安装过程
1 | mkdir /work |
打开另一终端窗口,进入到 root 用户
1 | /work/temp/hyperic-hq-installer-5.8.2.1/installer/data/hqdb/tune-os.sh |
回到原窗口继续安装:
运行
1 | cd /work/hq-zh/server-5.8.2.1/bin |
4. 使用
打开浏览器访问 http://192.168.1.103:7080/
hqadmin
xxxxx
修改iptables,打开agent接口
1 | -A INPUT -m state --state NEW -m tcp -p tcp --dport 7443 -j ACCEPT |
5. 监控tomcat7,要打开tomcat的JMS,找到catalina.sh里面的这句
1 | # ----- Execute The Requested Command ----------------------------------------- |
在这句前面加上下面
1 | CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=xsb37-int.cnhubei.com -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" |
其中xsb37-int.cnhubei.com为host的名称
/etc/hosts文件里要加入
1 | 127.0.0.1 xsb37-int.cnhubei.com localhost.localdomain localhost |
在linux下使用rpm版本安装的mysql,HQ Agent不能对其进行自动发现,只能手动添加。
具体是
- 点击进入该linux的监控平台
- 点击Tools Menu – > New Server进行添加server的页面,填入Name,选中Mysql的插件,在Install Path:填入mysql的安装目录(一般是/var/lib/mysql),保存。
- 配置属性里的jdbcUrl属性里输入:jdbc:mysql://10.99.113.32:3306
apache安装
1. 删除系统自带的Apache
1 | rpm -qa | grep httpd |
2. 关闭并删除httpd服务
1 | service httpd stop |
3. 然后倒序删除
1 | rpm -e system-config-httpd-1.3.3.3-1.el5 --nodeps |
4. 下载Apache
5. 安装Apache
1 | tar -zxvf httpd-2.2.27.tar.gz |
其中–prefix=/zewspaper/apache 是设置安装的目录
如果报错,则运行
1 | yum -y install gcc安装gcc |
1 | make |
6. Apache启动
1 | cd /zewspaper/apache/bin/ |
修改/zewspaper/apache/conf/httpd.conf文件
将里面的#ServerName localhost:80注释去掉即可。
1 | ./apachectl start #启动Apache |
禅道
1. 安装
http://www.zentao.net/download/
下载linux64版
1 | cd /opt/ |
http://192.168.1.132:8088/adminer/ 输入刚才的数据库root和密码,选择zentao库,可以导入数据库了
http://192.168.1.132:8088/ 访问禅道
2. 导出数据库
1 | mysqldump -u root -p zentao > zentao.sql |
3. 升级
http://www.zentao.net/book/zentaopmshelp/93.html
Jenkins
安装
1. 安装
1 | wget http://mirrors.jenkins-ci.org/war-stable/latest/jenkins.war |
2. 运行
1 | nohup java -jar jenkins.war --httpPort=8990 >>jenkins.out & |
3. 安装插件
Artifact Deployer Plug-in
用于生成jar包后复制到指定目录,如下配置:
1 | Artifacts to deploy:*.jar |
Hudson Post build task
用于复制到指定目录后执行相应的启动shell脚本命令,如:sh /www/jenkins/critz-rest-1.0.sh restart
注意事项,
svn路径的配置,一定要完整,不要使用Local module directory (optional),否则可能导致无法发现新提交的svn代码。。。。。
注册用户需要建立,(系统管理- Configure Global Security)勾选”启用安全”-“ Jenkins专有用户数据库”-“允许用户注册”,然后保存
点击右上角”注册”,进行新用户注册。
(系统管理- Configure Global Security)勾选”项目矩阵授权策略”,添加新注册的用户,并勾选”Overall”里面的”Administer”,保存
jenkins目录迁移
1. 拷贝原/root/.jenkins 目录到xxxx
2. 在启动Web容器之前设置JENKINS_HOME环境变量.
用root用户登录
编辑profile文件:
1 | vi /etc/profile |
在最后加入:export JENKINS_HOME=xxxx
保存,退出后执行:
1 | source /etc/profile |
让配置生效
3. 登入jenkins-系统管理-系统设置-Maven-Maven安装
MAVEN_HOME改成
1 | ${JENKINS_HOME}/tools/hudson.tasks.Maven_MavenInstallation/Maven3 |
https的keystore
HTTPS requires a signed certificate certificate and a certificate password which we provide using property values. To do so, we can use the JDK’s keytool like this:
1 | $ keytool -genkey -alias bookmarks -keyalg RSA -keystore src/main/resources/tomcat.keystore |
1. 文件说明
1 | ca-certs.crt ssl.key和ssl.crt合并后的ca文件 |
2. 按照网站的步骤,在startssl网站申请证书文件和私钥文件
http://www.chinaz.com/free/2010/1111/142581_3.shtml
http://www.deepvps.com/apply-startssl-ssl-certificate.html
http://www.freehao123.com/startssl-ssl/
3. 用在startssl网站申请的证书文件和私钥文件生成p12文件,网站左边栏
4. 使用下面的步骤利用p12文件,生成keystore文件
1 | keytool -rfc -list -keystore ssl.p12 -storetype pkcs12 |
其中12345678为key文件的密码,11111111为给keystore文件设置的密码
1 | keytool -list -keystore ssl.keystore |
这样就在目录中生成keystore文件了
5. 把keystore放入linux的某个目录
6. 在spring boot的jar文件的配置application.properties文件中设置ssl
1 | #443是https的端口号 |
Jenkins进阶之远程部署、构建Git分支、回滚
https://www.toutiao.com/i6508546172448145934/
1. 远程服务器部署、启动
常用两种方式:
Publish over SSH
准备工作
ssh免密配置
通过设置SSH key免密访问远程服务器
如有服务器A、B,现想A通过ssh免密码访问B,则将A机器中的id_rsa.pub ,拷贝到B机器的 .ssh/authorized_keys 文件中
1 | $ cat id_rsa.pub >> .ssh/authorized_keys |
A机器第一次ssh 登录到B机器时,需要输入B机器的密码,以后就可以不输入了。
安装Publish over SSH插件
系统管理→管理插件→可选插件→Publish Over SSH
插件配置
“系统管理>系统设置”中进行配置
参数说明
- Passphrase:SSH的密码
创建ssh key时指定,本文创建ssh key时默认为空。故,此处为空,不填写。 - Path to key:SSH私钥的文件路径
私钥文件的路径,可以是绝对路径,也可以是相对$JENKINS_HOME的相对路径 - Key:私钥
私钥导出后的文本内容
如果”Key”和”Path to key”都设置,则”Key”的优先级较高 - Disable exec:禁止在目标机上执行命令
SSH Server 配置
指定远程服务器的ip,存放目录。可以配置多个ssh server ,jenkins自动将打包成果发送到多个远程服务器。
配置完成后,可以 通过 “Test Configuration” 测试是否配置正确。
参数说明
- Name
SSH节点配置的名称,在Job中使用Publish over SSH插件时,此名称将出现在”SSH Server”中”Name”的下拉列表中,如下图: - Hostname
通过SSH连接到的机器的主机名或IP - Username
SSH服务使用的用户名,使用key进行连接时为key指定的用户名 - Remote Derictory
运程机器上真实存在的目录,并且”Username”指定的用户要有访问此目录的权限,插件将把文件传送到此目录下。
Publish over SSH 的应用
创建项目时,设置 构建环境,与Publish over ssh 的设置一一对应
2. Jenkins生产环境回滚
回滚的原理:
将历史构建的部署包备份,回滚时选择历史构建编号,重新拷贝部署包到远程服务器。
创建回滚任务
选择参加化构建,便于在触发回滚时指定回滚版本号。
参数说明:
建议选择Run Parameter,回滚时从下拉框选择回退版本号。
- Name:任意名称,此名称是在下面的回滚构建脚本中以变量的方式使用。
- Project:必须是构建列表里的名称,回滚脚本依赖该名称查找回滚的包。
源码管理
选择None
构建:
变量说明:
- WrappeRollback:
对应Run Parameter中配置的名称。该变量的值是构建的包的默认存放地址。 - BUILD_NUMBER:历史构建版本号。
执行回滚
选择任务列表中的回滚任务:
选择回滚版本号,开始构建
错误汇总
1. Error Message: ios notification length should be less than 220 bytes
极光推送ios最多55个汉字,包括extras字段内容。
2. 手机连电信3g网访问服务器,报504错误。
把手机上的联网模式 由ctwap 改成ctnet就可以正常访问了
3. 如果tomcat或jvm崩溃报如下错误
1 | # |
解释归结于:JIT在做编译优化的时候处理时出错,可能是触发了JVM的编译器的BUG导致的。
在这里,导致本次错误的是这个方法:
1 | com.tipoff.server.rest.controller.BrokenAPIController.setupBrokenAPI |
解决办法:让jvm跳过该方法的编译优化
catalina.sh找到JAVA_OPTS
增加下边的代码就可以了!
1 | -XX:CompileCommand=exclude,com/tipoff/server/rest/controller/BrokenAPIController,setupBrokenAPI |
4. CentOS 6.6,/etc/sysconfig/下没有iptables的问题
任意运行一条iptables防火墙规则配置命令
1 | iptables -P OUTPUT ACCEPT |
对iptables服务进行保存
1 | service iptables save |
编辑/etc/sysconfig/下iptables文件
重启iptables服务
1 | service iptables restart |
5. c++: error: unrecognized command line option ‘-std=gnu++14’
升级高版本gcc