背景:想要做一个高性能的框架也好,其实还是站在内核上面跳舞,为此,其对内核的设置很重要,就以swoole来讲,其queque是基于epoll,进程间通讯用到内核的que,当然要设置它 了,再就是消息队列这块的通讯,是不是也得设置,这块还有高并发的句柄这块,也需要设置为更大。这块linux下的epoll和freebsd的kqueque都要设置一下,否则,用不上内核的能力也就问题大了,swoole的nginx配置到swoole的通讯用unix socket dgram,也需要配置,你可能说这个框架性能不行了,其实性能是一个综合体,不是一个框架就能说明的。

当使用消息队列作为进程间通信方式时,需要调整此内核参数

kernel.msgmnb = 4203520,消息队列的最大字节数
kernel.msgmni = 64,最多允许创建多少个消息队列
kernel.msgmax = 8192,消息队列单条数据最大的长度

————————————————————————————
ulimit设置

ulimit -n 要调整为100000甚至更大。 命令行下执行 ulimit -n 100000即可修改。如果不能修改,需要设置 /etc/security/limits.conf,加入

* soft nofile 262140
* hard nofile 262140
root soft nofile 262140
root hard nofile 262140
* soft core unlimited
* hard core unlimited
root soft core unlimited
root hard core unlimited
内核设置

net.unix.max_dgram_qlen = 100

swoole使用unix socket dgram来做进程间通信,如果请求量很大,需要调整此参数。系统默认为10,可以设置为100或者更大。
或者增加worker进程的数量,减少单个worker进程分配的请求量。

net.core.wmem_max

修改此参数增加socket缓存区的内存大小

net.ipv4.tcp_mem  =   379008       505344  758016
net.ipv4.tcp_wmem = 4096        16384   4194304
net.ipv4.tcp_rmem = 4096          87380   4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_tw_reuse

是否socket reuse,此函数的作用是Server重启时可以快速重新使用监听的端口。如果没有设置此参数,会导致server重启时发生端口未及时释放而启动失败

net.ipv4.tcp_tw_recycle

使用socket快速回收,短连接Server需要开启此参数

消息队列设置

当使用消息队列作为进程间通信方式时,需要调整此内核参数

kernel.msgmnb = 4203520,消息队列的最大字节数
kernel.msgmni = 64,最多允许创建多少个消息队列
kernel.msgmax = 8192,消息队列单条数据最大的长度

开启CoreDump

设置内核参数

kernel.core_pattern = /data/core_files/core-%e-%p-%t
通过ulimit -c命令查看当前coredump文件的限制

ulimit -c
如果为0,需要修改/etc/security/limits.conf,进行limit设置。

开启core-dump后,一旦程序发生异常,会将进程导出到文件。对于调查程序问题有很大的帮助
其他重要配置

net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=81920
net.ipv4.tcp_synack_retries=3
net.ipv4.tcp_syn_retries=3
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 20000 65000
net.ipv4.tcp_max_tw_buckets = 200000
net.ipv4.route.max_size = 5242880
查看配置是否生效

如:修改net.unix.max_dgram_qlen = 100后,通过

cat /proc/sys/net/unix/max_dgram_qlen
如果修改成功,这里是新设置的值。

摘自:http://wiki.swoole.com/wiki/page/11.html
本地socket--SOCK_DGRAM方式:http://blog.csdn.net/shanzhizi/article/details/16883601
背景:我是一个同事,操作一些命令后出现这个问题,经过chmod 755 / 问题得到解决。


客户一个oracle突然当机了,由于业务启动,客户下意识的重启了服务器,系统是起来了,准备切换到oracle用户下启动数据库,可以怎么都无法su切换,真是火上浇油呀,描述如下:
在root用户下,su到一个普通用户oracle,得到如下错误:

[root@localhost ~]# su -  oracle
su: warning: cannot change directory to /home/oracle: Permission denied
su: /bin/bash: Permission denied

而oracle用户也无法通过直接登录,出现同样错误。

这是一个非常奇怪的问题,到底是什么导致的呢?思路如下:
1,程序执行权限问题
2,程序依赖的共享库权限问题
3,目录权限问题
4,根空间问题。

检查/bin/bash,权限正确,检查/home/oracle权限正确,检查/lib/ld-***.so,权限也正确。

继续调试,检查/etc/passwd,将oracle的home设置为/tmp,把/tmp设置为777,这个权限应该是最宽松的。

而su出现同样的错误。

也就是oracle用户无法访问777权限的/tmp。

问题到底出现在哪里呢?

最后
通过star命令,看到了问题根本,
[root@localhost ~]#stat  /
输出如下:因为你ls是看不到的。
  File: “/”
  Size: 1024            Blocks: 2          IO Block: 1024   目录
Device: 803h/2051d      Inode: 2           Links: 22
Access: (0666/drw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2007-12-01 22:28:48.000000000 +0800
Modify: 2007-12-01 22:28:34.000000000 +0800
Change: 2007-12-01 23:17:35.000000000 +0800

问题出来了,这里的权限是错误的,X权限的丢失造成的。

[root@localhost ~]#chmod 755 /


修改后,问题消失。

产生上述问题的方法:
第一种,chmod 666 /,可以导致。

或者,
第二种,chmod 700 /lib/ld-xxxx.so,也可以导致su失败。

有兴趣可以自己试一下。

/ 权限的丢失对于各种运行在自己用户身份上的daemon也存在同样的影响。
原文链接: http://www.ixdba.net/a/mz/2010/0421/14.html
背景:c语言把整数写入文件,并读出,C语言写整数到文件用啥函数? 我看 fwrite 是写char*的。这个在调试队列时可以用上,有时入队出队不一致时,通过入队写了多少行出队写了多少行就知道到底队列程序在数据量大时有没有问题。




摘自:http://blog.163.com/song_0803/blog/static/4609759720112231158527/

入队写文件:


出队写文件:





整个换行到里面去,否则全是888不太好用vim 打开直接set nu看多少行:


w+以纯文本方式读写,而wb+是以二进制方式进行读写。

mode说明:
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
wb 只写方式打开或新建一个二进制文件,只允许写数据。
wb+ 读写方式打开或建立一个二进制文件,允许读和写。
r 打开只读文件,该文件必须存在,否则报错。
r+ 打开可读写的文件,该文件必须存在,否则报错。
rb+ 读写方式打开一个二进制文件,只允许读写数据。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
每天做得最多的就是用VIM打开文件、保存文件。使用VIM编辑文件时我习惯用'x'命令在保存并退出。而我的一个同事习惯用'wq'命令保存并退出,有一次他问我用'x'和'wq'有什么区别吗?我当时答不出来。

今天我在用'x'命令保存退出时发现了一个有趣的地方,保存退出后有时会显示 "filename" 1L, 10C 已写入  这么一行,有时又不显示。多试了几次才发现在没有修改文件时用'x'命令保存退出时不会显示 "filename" 1L, 10C 已写入 ,文件的修改时间也不会发生变化。有修改时则会显示这一行,而且文件的修改时间也会随之更新。接着我又使用'wq'命令保存退出时终于发现了点问题:不管我是否修改了文件内容,用'wq'命令保存退出时都会显示 "filename" 1L, 10C 已写入 ,并更新文件的修改时间。呵呵原来"x"与"wq"的的真正区别在这里:

wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。


From:http://blog.chinaunix.net/uid-12115233-id-3268894.html
用C语言实现一个循环队列并不难。关键点在于对队列 "空" 和 "满" 状态的判断。

正如《C和指针》中所描写的,有两种方法来实现对队列空和满状态的判断。

在数组中空一个元素不填,起始时, 置tail为0, front为1, 这样一来, 实现要浪费queue buffer中两个元素空间:
队列空:  (tail+1) % queue_size == front
队列满:  (tail+2) % queue_size == front
定义一个变量来记录队列中元素的个数, 判断队列的空和满直接看变量的值即可


本文中使用的是第2种:


来自:http://blog.csdn.net/huangkangying/article/details/44066729
在 .vimrc里添加:


按一下 f 键就能显示函数名字。

来自:http://blog.csdn.net/caspiansea/article/details/42570311


vim里一个函数很长(几百行),光标在函数中间的某个位置,怎么快速跳到函数头?
[]
是跳到函数头。[ 是 p 右侧那个键。
正常模式
跳到头
[[
跳到尾
][
跳到下一个函数
]]
调到上一个函数
[]
调到上一层大括号
[{


ctrl + o 回到光标回到上次位置:
ESC下面那个按两下也可以实现


命令模式下跳转到某行:
比如开始在第n行,然后用mG后,跳到了m行,
背景:尽管登录vps会发邮件,但是会偶出现,登录了又发了一邮件,于是想此时看到底有多少个终端在登录态,还是阿里的alikid触发,还是真有黑客,怎么办,w查看,w tux。
LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务。系统管理员可以随时了解系统中有那些用户,用户都在进行什么操作。
查看用户的操作
系统管理员若想知道某一时刻用户的行为,只需要输入命令w即可,在SHELL终端中输入如下命令:
tux@tux-desktop:~$ w
21:13:14 up 7:08, 2 users, load average: 0.22, 0.32, 0.20
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
tux      tty7     :0               14:05     ?    37:55   0.33s x-session-manag
tux      pts/1    :0.0             21:13    0.00s 0.13s 0.00s w

可以看到执行W命令及显示结果。
命令信息含义
上述显示的信息分别表示如下:
第一行显示系统的汇总信息,字段分别表示系统当前时间、系统运行时间、登陆哟内用户总数及系统平均负载信息。对于上述势力中的几个显示数据意义为:
21:13:14 表示执行W的时间是在晚上9点13分。
7:08 表示系统运行7小时8分。
2 users 表示当前系统登陆用户总数为2。
load average与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。
从第二行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资料。
USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。
TTY:用户登陆所用的终端。
FROM:显示用户在何处登陆系统。
LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。
IDLE:用户空闲时间,从用户上一次任务结束后,开会记时。
JCPU:一终端代号来区分,表示在摸段时间内,所有与该终端相关的进程任务所耗费的CPU时间。
PCPU:指WHAT域的任务执行后耗费的CPU时间。
WHAT:表示当前执行的任务。

查看某用户
当登陆系统用户很多的时候,可以在W后面加上某个用户名,则会查看该用户执行任务的情况。
tux@tux-desktop:~$ w tux
21:19:01 up 7:14, 2 users, load average: 0.25, 0.21, 0.18
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
tux      tty7     :0               14:05     ?    38:05   0.33s x-session-manag
tux      pts/1    :0.0             21:13    0.00s 0.13s 0.00s w tux

默认情况下,系统会显示上述所有的信息,如果只关心某一方面,可以只使用相关的选项。
linux svn工作空间锁定无法更新的解决方法(Working copy ‘.’ locked)
背景:有人在linux上直接修改文件(可能是debug),但没有提交成功。产生这种情况大多是因为上次svn更新命令执行失败且被自动锁定了。
于是会出现如下情况:
[root@localhost justwinit_devel]# /usr/bin/svn  update --username xiangdong --password xiangdong
svn: Working copy '.' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
怎么办?

两步解决:
步骤1:
写个脚本批量清,cleanuplocked.sh:
#!/bin/sh
for lk in `find /data/htdocs/justwinit_devel -name "lock"`
do
`rm $lk`
done
exit


步骤二:运行命令svn cleanup:
[root@localhost justwinit_devel]# svn cleanup
[root@localhost justwinit_devel]# /usr/bin/svn  update --username xiangdong --password xiangdong

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <http://svn.jackxiang.com:80> Authorization Realm

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
At revision 2736.


参考:http://www.xuebuyuan.com/1112787.html
背景:vim打开代码时候发现空格显示后发现行尾有一堆空格...得删除,在vim配置下可以高亮这些空格,看到后方便删除掉。
让vim显示行尾的空格的配置办法,在/etc/vimrc文件添加如下两行 :
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/
摘自:http://www.codeweblog.com/%E8%AE%A9vim%E6%98%BE%E7%A4%BA%E7%A9%BA%E6%A0%BC-%E5%8F%8Atab%E5%AD%97%E7%AC%A6-vim-%E5%A4%9A%E8%A1%8C%E6%B3%A8%E9%87%8A/

方法一:vi 删除行尾空格以替换解决掉删除行尾空格,实践OK如下:
行末:$
行首:^
空格:\s

行末空格:\s\+$
行首空格:^\+\s

删除行尾空格:
:%s/\s\+$//

:%s/\s\+$//g   #也成,别少个$就成,否则所有空格全给去了。
http://blog.itpub.net/22661144/viewspace-1433706/

方法二:用插件实现:
前言

一直想改成emacs无奈工作需要效率,所以vim还没有完全放弃. 我想做python的同学很可能有我一样的困扰:

在维护别人的代码的时候发现有很多tab和空格混用或者行尾空格没有删除
我以前可能没有注意这个问题,就是自觉的使用ed模式: :%s/\s+$//g和:retab,最近老大的一句话提醒 了我:他问我是否vim可以配置成自动模式? 以我对vim的了解它肯定不会介入个人的编辑,那么可能就要使用hook的方法.

这也就是我的vary.vim(https://github.com/dongweiming/vary.vim)的原理:当保存文件的时候(:w)自动执行命令. 其实我想你可能会问,为啥是我保存的时候而不是打开的时候呢?额 下面会讲到

安装配置请看项目的README

安装后就算不配置默认只对python语言生效-团队和语言风格不同

修改我的vim插件

我一直在想究竟哪种方式更合理(打开文件就修改还是保存的时候再修改),我默认是保存,但是其实你可以修改我的autocmd命令为:

autocmd BufReadPost * :call StripTrailingWhite()
autocmd BufReadPost * :call RetabIndents()
表示打开文件之前就修改,把修改后的结果呈现给你

来自:http://www.tuicool.com/articles/aQfqUv
http://blog.chinaunix.net/uid-24830931-id-3376798.html
被复制的文件情况:
[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
  文件:"seven.mp4"
  大小:8573191         块:16752      IO 块:4096   普通文件
设备:ca01h/51713d      Inode:7878        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800

根据上面的大小8573191 编写代码,writeTest.c:

编译此文件:
[root@iZ25dcp92ckZ multepoolserver]# gcc writeTest.c  -g -o writeTest
[root@iZ25dcp92ckZ multepoolserver]# ./writeTest
对写入的文件进行md5比对:
[root@iZ25dcp92ckZ multepoolserver]# md5sum  sevenCopy.mp4
cf9dc79b01388037577e0a13e261cbe6  sevenCopy.mp4
[root@iZ25dcp92ckZ multepoolserver]# md5sum seven.mp4
cf9dc79b01388037577e0a13e261cbe6  seven.mp4

[root@iZ25dcp92ckZ multepoolserver]# stat seven.mp4
  文件:"seven.mp4"
  大小:8573191         块:16752      IO 块:4096   普通文件
设备:ca01h/51713d      Inode:7878        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2015-06-22 17:31:45.913756498 +0800
最近更改:2015-06-16 16:58:26.000000000 +0800
最近改动:2015-06-16 17:17:17.910047316 +0800
创建时间:-
[root@iZ25dcp92ckZ multepoolserver]# stat sevenCopy.mp4
  文件:"sevenCopy.mp4"
  大小:8573191         块:16752      IO 块:4096   普通文件
设备:ca01h/51713d      Inode:9791        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2015-06-22 17:31:56.458192181 +0800
最近更改:2015-06-22 17:31:45.919756746 +0800
最近改动:2015-06-22 17:31:45.919756746 +0800
创建时间:-


阅读全文
背景:有时看个bin-log的sql语句时间,想看文件的中间,怎么看,文件还挺大的,这儿有个办法,太大上G的这个命令还是有些玄乎,看不了。
Linux查看文件中间行:
从第3000行开始,显示1000行。即显示3000~3999行:
【一】cat filename | tail -n +3000 | head -n 1000
【二】cat filename| head -n 3999 | tail -n +3000
*注意两种方法的顺序
【三】用sed命令
sed -n '3000,3999'p filename 可以只查看文件的第3000行到第3999行。

知识点:
1,tail -n 1000:显示最后1000行
     tail -n +1000:从1000行开始显示,显示1000行以后的
     head -n 1000:显示前面1000行
2,Sed命令是linux下的一个非常有用的命令,
sed -n '2'p filename  打印文件的第二行。
sed -n '1,3'p filename 打印文件的1到3行。
sed -n '/Neave/'p filename 打印匹配Neave的行(模糊匹配)
sed -n '4,/The/'p filename  在第4行查询模式The  
sed -n '1,$'p filename 打印整个文件,$表示最后一行。

摘自 :http://blog.163.com/nancainvmao_bq/blog/static/1065737420131084545205/
背景:从windows上用editplus编写一个文件rz上去后,在make时,出现make: 警告:检测到时钟错误。您的创建可能是不完整的。后面make clean;问题依旧。
引起原因:是因为windows上的文件可以时间比较旧,需要给touch一个新时间,让make认为是很新的文件,即可。
解决办法:
touch multepoolser.c
于是编译就没提示这个问题了。
——————————————————————————————————————————————————————
我在make的时候也出现了同样的问题,不过不是什么大问题,这个不影响编译结果

分析原因可能是:
服务器上的文件最后修改时间比当前时钟要晚

解决办法:
用touch 命令把源程序的时间戳改一下
find . -type f -exec touch {} \;

或者

touch *一下再重新编译

From:http://blog.csdn.net/maopig/article/details/6599660
背景:有vps到期后想换一台vps时,其旧的vps的数据是怎么样实现完全删除的哩? 或是怎么处理的,我现在把vps搬到淘宝vps了,有这个问题。兄弟们是怎么使用的dd。如果我想删除: /data/htdocs 是要dd多少次?d27就可以了。

销毁数据:
利用随机的数据填充硬盘:dd if=/dev/urandom of=/dev/hda1,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作,dd if=/dev/zero  of=/tmp/test bs=1M count=2048。
比如我的vps:
[root@jackxiang data]# df -h
Filesystem      Size    Used  Avail Use% Mounted on
/dev/sdb         94G  1.2G   88G   2%       /data
还是害怕给dd删除这个/dev/sdb给人家磁盘弄环了,还是算了吧。
灌入点数据得了:
[root@jackxiang data]# dd if=/dev/zero of=hello.txt bs=1000M count=1
记录了1+0 的读入
记录了1+0 的写出
1048576000字节(1.0 GB)已复制,18.5093 秒,56.7 MB/秒

[root@jackxiang data]# du -sh hello.txt
1001M   hello.txt
阅读全文
printf格式输出:%[flags][width][.perc][F|N|h|l]type

用到了flags中的 0 (注意是零不是欧) ,其百科描述为:将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-)

width 即表示需要输出的位数。


int a = 4;
printf("%03d",a);
输出:004

也可以用 * 代替位数,在后面的参数列表中用变量控制输出位数;


int a = 4;
int n = 3;
printf("%0*d",n,a);
输出:004

来自:http://blog.chinaunix.net/uid-26295753-id-2981750.html
背景:试着在centos7里调试一下c程序,出现,Missing separate debuginfos, use: debuginfo-install cyrus-sasl-lib-2.1.26-17.el7.x86_64 glibc-2.17-78.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.12.2-14.el7.x86_64 libcom_err-1.42.9-7.el7.x86_64 libgcc-4.8.3-9.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 libstdc++-4.8.3-9.el7.x86_64 nss-softokn-freebl-3.16.2.3-9.el7.x86_64 openssl-libs-1.0.1e-42.el7.4.x86_64 xz-libs-5.1.2-9alpha.el7.x86_64

问题:
Missing separate debuginfos, use: debuginfo-install glib
解决方法:
在CentOS6.5上用gdb调试时提示Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6.i686

实践如下过程:
uname -rsp
Linux 3.10.0-229.1.2.el7.x86_64 x86_64

http://debuginfo.centos.org/7/x86_64/
(例如本机uname -r 3.10.0-229.1.2 只能选 kernel-debuginfo-3.10.0-229.1.2.el7.x86_64.rpm kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm


安装debuginfo
rpm -ivh kernel-debuginfo-3.10.0-229.1.2.el7.x86_64.rpm
rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm

配置yum源
or this to work, you need to have the debuginfo repository defined. For CentOS 5, put the following in /etc/yum.repos.d/CentOS-Base-debuginfo.repo:
[base-debuginfo] name=CentOS-$releasever - DebugInfo baseurl=http://debuginfo.centos.org/$releasever/$basearch/ gpgcheck=0
enabled=0
protect=1
priority=1

利用debuginfo-install安装glibc
debuginfo-install glibc

注意事项
安装debuginfo 去http://debuginfo.centos.org寻找和你内核完全匹配的rpm包。


详细:http://jingyan.baidu.com/article/37bce2be1839ca1003f3a253.html

————————————————————————————————————
自己实践如下:
rpm -ihv kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm
警告:kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID b6792c39: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:kernel-debuginfo-common-x86_64-3.################################# [100%]

rpm -ihv   kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm  
警告:kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID b6792c39: NOKEY
准备中...                          ################################# [100%]
        软件包 kernel-debuginfo-common-x86_64-3.10.0-229.1.2.el7.x86_64 已经安装

再安装:
debuginfo-install cyrus-sasl-lib-2.1.26-17.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.12.2-14.el7.x86_64 libcom_err-1.42.9-7.el7.x86_64 libgcc-4.8.3-9.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 libstdc++-4.8.3-9.el7.x86_64 openssl-libs-1.0.1e-42.el7.4.x86_64 xz-libs-5.1.2-9alpha.el7.x86_64
背景:多个文件时设置断点时,可以在断点后指定文件名加函数,也可指定文件名加行号,还可以断点后跟偏移量,摘录下其他网站的。
设置断点:

——————————————————————————————————————————————————————————
     (gdb) break 断点

     程序运行后,到达断点就会自动暂停运行。此时就可以查看该时刻的变量值,显示栈针,重新设置断点或者重新运行等。

     断点可以通过函数名,文件内的行号来设置,也可以先指定文件名再指定行号,还可以指定与暂停位置的偏移量,或者用地址来设置。

     (gdb) break 函数名

     (gdb) break 行号

     (gdb) break 文件名:行号

     (gdb) break 文件名:函数名

     (gdb) break +偏移量

     (gdb) break -偏移量

     (gdb) break *地址

     在设置断点的时候,如果不指定断点位置,就在下一行代码上设置断点。    


     条件断点

     (gdb) break 断点 if 条件

     仅在特定条件下中断。对于已存在的断点,可使用condition为其添加条件。

     (gdb) break 断点编号 条件

     而删除指定编号断点的触发条件同样使用condition。

     (gdb) condition 断点编号

阅读全文
每次在电脑上安装支付宝安全控件时,默认都会强行安装与运行TaobaoProtect这个进程(如图)。电脑上装了这个程序以后,在我玩游戏时它总是会令我正在运行的程序自动跳出,使游戏最小化到任务栏上。令我感觉特别烦人!特别受骚扰!可是在淘宝上购物不安装支付宝又不行。最可恶的是购物以后我将支付宝安全控件卸载了然而这个该死的TaobaoProtect进程依然存在。阿里旺旺怎么净干这磋事啊?谁有办法禁用这个该死的进程啊?

1)首先删除C:\Users\“用户名”\AppData\Roaming\TaobaoProtect下的TaobaoProtect.exe和TaobaoProtectSE.dll。然后新建一个txt文件,重命名为TaobaoProtect.exe,右键属性设置只读打勾。目前最完美的解决方案了。

2)如果删除不掉有程序在使用怎么办,unlock来解锁:
http://www.anxz.com/down/1600.html
Git分支模型及版本控制:
https://github.com/wmzhai/advanced-git-topic/blob/master/branching-model.md
extensions.firebug.console.logLimit 配置的。

Firebug's log limit has been reached. %S entries not shown. Firebug 的日志已达上限。 %S 条目没有显示。 建议: Firebug 的日志已达上限。
一)他怎么知道缓存在那个目录呢?
You can add a line in wp-config.php like below:
define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/var/run/nginx-cache');

root@101.200.228.135:/data/htdocs/jackxiang.com# grep -r "RT_WP_NGINX_HELPER_CACHE_PATH" ./
./wp-content/plugins/nginx-helper/nginx-helper.php:        define('RT_WP_NGINX_HELPER_CACHE_PATH', '/var/run/nginx-cache');
./wp-content/plugins/nginx-helper/purger.php:                   if (!defined('RT_WP_NGINX_HELPER_CACHE_PATH')) {
./wp-content/plugins/nginx-helper/readme.txt:`define('RT_WP_NGINX_HELPER_CACHE_PATH','/var/run/nginx-cache/');`

vim打开上面文件替换:
%s/\/var\/run\/nginx-cache/\/data\/cache\/ngx_fcgi_cache2/g
二)总配置:/conf/nginx.conf


三)分配置:/conf/vhost/jackxiang.conf 阅读全文
wget -c http://www.itkb.ro/userfiles/file/libiconv-glibc-2.16.patch.gz
cd libiconv-1.14/srclib
patch -p1 stdio.in.h
俺运行patch后好久都没有反应 :( 最后人肉修改
这个补丁的内容如上,用unzip包解压后rz上CentOS7上去,修改成下面这样:
/data/software/libiconv-1.14/srclib/stdio.in.h


参考来自:http://forum.z27315.com/topic/15662-%E8%A7%A3%E5%86%B3%E7%BC%96%E8%AF%91libiconv%E6%97%B6%E7%9A%84gets-undeclared-here%E9%94%99%E8%AF%AF/
分页: 9/21 第一页 上页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]