Linux 如何用Eclipse CDT调试多进程C(C++)程序。Debug fork() in eclipse cdt (翻译)

1) Put a breakpoint onto lines you want debugin.

在你想调试的地方设置断点

2) In debug configuration enable “non-stop mode” and “automatically debug forked process”.

在调置设置窗口,将”non-stop mode” 和 “automatically debug forked process”打钩.

3) Start debug session. You will hit a breakpoint either in child or parent. . Now see debug view.

开始调试。程序停在了你的设置的断点处。还可以在调试窗口,看到生成的进程。

参考网址:

http://stackoverflow.com/questions/15467162/debug-fork-in-eclipse-cdt

发表在 知识积累 | Linux 如何用Eclipse CDT调试多进程C(C++)程序。Debug fork() in eclipse cdt (翻译)已关闭评论

Java在WEB项目中获取文件路径

jsp中获得文件路径

1、根目录所对应的绝对路径:request.getRequestURI();

2、文件的绝对路径:application.getRealPath(request.getRequestURI())

3、当前web应用的绝对路径:application.getRealPath(“/”)

4、取得请求文件的上层目录:

newFile(application.getRealPath(request.getRequestURI())).getParent()
servlet中获得文件路径

1、根目录所对应的绝对路径:request.getServletPath()

2、文件的绝对路径:

request.getSession().getServletContext().getRealPath(request.getRequestURI())

3、当前web应用的绝对路径:servletConfig.getServletContext().getRealPath(“/”)

注:ServletContext对象获得几种方式:

javax.servlet.http.HttpSession.getServletContext()

javax.servlet.jsp.PageContext.getServletContext()

javax.servlet.ServletConfig.getServletContext()
java中获得文件路径

1、Thread.currentThread().getContextClassLoader().getResource(“”).toURI().getPath()

2、MyClass.class.getClassLoader().getResource(“”).toURI().getPath()

3、ClassLoader.getSystemResource(“”).toURI().getPath()

4、MyClass.class.getResource(“”).toURI().getPath()

5、MyClass.class.getResource(“/”).toURI().getPath()//已验证

6、newFile(“/”).getAbsolutePath().toURI().getPath()

7、System.getProperty(“user.dir”).toURI().getPath()

读取配置文件
private String fileName=”/biz_configuration.properties”;
public CnDB() {
Properties p = new Properties();
try {
InputStream in = CnDB.class.getResourceAsStream(fileName);
p.load(in);
in.close();
if(p.containsKey(“jdbc.driverClassName”)){
this.driver = p.getProperty(“jdbc.driverClassName”);
}
if(p.containsKey(“jdbc.url”)){
this.url = p.getProperty(“jdbc.url”);
}
} catch (IOException ex) {
log.error(“配置文件” + fileName + “读取异常:” + ex);
}
}

发表在 知识积累 | Java在WEB项目中获取文件路径已关闭评论

CentOS 7安装谷歌拼音中文输入法

谷歌拼音输入法官方代码
http://code.google.com/p/libgooglepinyin/
下载地址
http://code.google.com/p/libgooglepinyin/downloads/list

我的下载为
libgooglepinyin-0.1.1.tar.bz2
ibus-googlepinyin-0.1.2.tar.bz2

原英文安装介绍
http://code.google.com/p/libgooglepinyin/wiki/INSTALL

实机安装命令如下
安装依赖包
yum install libpinyin.x86_64 libpinyin-data.x86_64 libpinyin-devel.x86_64
yum install ibus-devel.x86_64
yum install ibus-pygtk2.noarch

到下载目录 解压
cd /tmp
tar xvf libgooglepinyin-0.1.2.tar.bz2
tar xvf ibus-googlepinyin-0.1.2.tar.bz2
cd libgooglepinyin-0.1.2/
mkdir build
cd build/
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

cd ../../ibus-googlepinyin/
mkdir build
cd build/
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

执行下面的命令测试(无错误输入为成功,按ctrl+c 结束)
/usr/share/ibus-googlepinyin/main.py

重启ibus服务
ibus restart

现在可以通过图型界面添加谷歌输入法了。

发表在 知识积累 | CentOS 7安装谷歌拼音中文输入法已关闭评论

在Linux CentOS7.1 下配置ASP.NET(Apache + Mono)

环境配置方法
说明:#开始的为注释

安装操作系统 centos7.1
#依次执行下面的命令
yum update -y
yum install httpd vim yum-utils
#设置selinux为无效模式
setenforce 0
vim /etc/sysconfig/selinux
#修改内容:SELINUX=enforcing-> SELINUX=permissive
#关闭firewalld,并关闭默认开机启动。
systemctl stop firewalld
systemctl disable firewalld
#如果上网需要代理,可参考下面的格式设置
export http_proxy=http://192.168.1.2:3128
yum install -y http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm –import “http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF”
yum-config-manager –add-repo http://download.mono-project.com/repo/centos/
yum install mono  mono-complete referenceassemblies-pcl -y
yum install -y apache2-mod_mono.x86_64
#支持dotnet4 framework
vim /etc/httpd/conf.d/mod_mono.conf
#mod_mono.conf添加内容的:
MonoServerPath default /usr/bin/mod-mono-server4
AddMonoApplications default “/:/var/www/html”
<Location />
SetHandler mono
Require all granted
</Location>
#重启apache服务
systemctl restart httpd
以上设置web默认主页的位置:/var/www/html

***由于字符显示问题参数两个连续的半角「-」可能显示为一条「–」**

发表在 知识积累 | 在Linux CentOS7.1 下配置ASP.NET(Apache + Mono)已关闭评论

SSH登录卡死在expecting SSH2_MSG_KEX_DH_GEX_GROUP-解决方法之一

目标主机是一个OpenStack 的centos6,从其它一些centos6,5的主机可以正常(password auth)登录到目标主机;
然而从centos7的却无法登录到目标主机
调试信息显示
SSH登录卡死在expecting SSH2_MSG_KEX_DH_GEX_GROUP
登录时DEBUG信息如下:
ssh -v root@192.168.108.201
OpenSSH_6.4, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 51: Applying options for *
debug1: Connecting to 192.168.108.201 [192.168.108.201] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP

经过百度查找资料,发现可以通过修改/etc/ssh/ssh_config使
MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
这一行生效来解决这个问题。

解决方法之二
说是openstack部署在两台物理计算节点机上的两台虚机之间通过ssh执行大数据输出的命令时有hang的情况,
经研究、分析、搜索、试验、最后原因在于MTU:
修改前mtu 1500改为 mtu 1454
命令
ifconfig
eth0: flags=4163 mtu 1500
ip link set eth0 mtu 1454

openstack 方面的设置项
In /etc/neutron/dhcp_agent.ini:

[DEFAULT]

dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
In /etc/neutron/dnsmasq-neutron.conf:

dhcp-option-force=26,1454
Now

killall dnsmasq
service neutron-dhcp-agent restart

发表在 知识积累 | SSH登录卡死在expecting SSH2_MSG_KEX_DH_GEX_GROUP-解决方法之一已关闭评论

linux mount cifs 挂window 共享 网盘

linux mount cifs 挂window 共享 网盘

mount的格式
mount -t cifs -o username=访问共享文件的用户名,passwd=访问共享文件的用户名对应的密码,soft 共享的URL地址 linux上的地址
举例
mount -t cifs -o username=shareuser,passwd=sharepass,soft //192.168.0.1/share /mnt/win7

发表在 知识积累 | linux mount cifs 挂window 共享 网盘已关闭评论