- 浏览: 137153 次
- 性别:
- 来自: 北京
最新评论
文章列表
项目使用了url rewrite 隐藏了index.php后,设置cookie必须加上根路径才可全站获取。
php 环境变量里有一个orig_path_info.事实它是原始的path_info(即未经过php处理过的).一般来说php会处理path_info,如果它无法解析,则会取消path_info,转而直接将path_info信息赋值给orig_path_info
直接上代码.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 8972654 //随便设定的数
#define SHIFT 5
int bitmap[1 + MAX/32];
int setbit(unsigned int x);
int clearbit(unsigned int x);
void print_map();
void print_bit(int offset, int i);
int
main(int argc, ...
shell脚本中$$指当前进程ID,而调用$()执行命令时会生成子shell,按理说$()中用$$获取到的进程号是子shell的进程ID,但shell的规则是它获取到的是current shell的pid,而current_shell的进程id在这表现为派生子shell的shell进程ID
#!/bin/bash
echo $$
test(){
echo $$
}
$(test)
第一个$$和test里的$$输出是一样的.他们的current_shell 都是父shell
看看info bash里的说明
`$'
Expands to the process ID of ...
执行rsync时经常会遇到invalid gid ***,或invalid uid ***的问题
这是因为服务器端没有这个用户组或者用户,但你在配置文件里写了该用户组或用户.
比如我的报错invalid gid nobody
我用id命令
id nobody 显示如下
uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
可见gid不是nobody 是nogroup
所有的内核都是可重入的.但可重入内核不只是包含可重入函数.也可以包含不可重入函数,这时候信号量,自旋锁之类的同步机制就派上用场了.
以前在看linux操作系统时始终理解不了单CPU自旋锁导致死锁的问题.今天在网上搜了一下总算是理解了.摘录如下
想象你的内核代码请求到一个自旋锁并且在它的临界区里做它的事情,在中间某处,你的代码失去了处理器。或许它已调用了一个函数(copy_from_user,假设)使进程进入睡眠。也或许,内核抢占发威,一个更高优先级的进程将你的代码推到了一边(注意,这都是假设,自旋锁其实不允许这些操作)。此时,正好某个别的线程想获取同一个锁,如果这个线程运行在和你的内核代码不同的处理器上(幸运的情况),那么它可能要自旋等待一段时间(可能很长),当你的代码从休眠中唤醒或者重新得到处理器并释放锁,它就能得到锁。 ...
有时我们需要看一下服务器的raid信息.
1.软件raid的话可以通过 cat /proc/mdstat
md1 : active raid1 sdb3[1] sda3[0]
480572352 blocks [2/2] [UU]
md3 : active raid1 sdb2[1] sda2[0]
1952704 blocks [2/2] [UU]
md2 : active raid1 sda1[0] sdb1[1]
194496 blocks [2/2] [UU]
我的是做了软raid1(sda,sdb两块硬盘 ...
在linux中iostat -d查看磁盘状态时,有的会有如下dm-0,dm-1的条目.
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.19 0.57 2.92 341228 1753052
dm-0 0.27 0.56 2.88 334673 1729848
dm-1 0.00 0.00 ...
重启mysql主库时遇到 log file /data1/webserver/mysql/data/ib_logfile0 is of different size 0 5242880 bytes
只要rm ib_logfile*即可。
ib_logfile类文件是innodb引擎的事务日志文件。看mysql文档
The ib_logfile's hold statements affecting innodb tables only. If a crash occurs they are automatically used to complete any innodb transactio ...
有两种方式。
1.利用MYSQL的mysqld_multi,在my.cnf中配置多个[mysqldN],比如[mysqld0],[mysqld1]。
2.创建多个配置文件和相应目录,如my.3306.cnf,my.3307.cnf.
两种方式差不多。
第一种方式优点在于集中管理一个配置文件就可以(但一般不会在同一个服务器上监听三个以上端口吧)。但定制每个端口实例不太方便(毕竟改的是同一个文件)。
第二种方定制每个端口实例方便。
如果没特殊需求的话用第二种更方便。
在configure时我们经常会遇到明明已经指令了目录但有时就是链接不了的情况,解决方法及原因如下(引用自http://www.cnblogs.com/taskiller/archive/2012/12/14/2817650.html)
CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。
LDFLAGS:gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法 ...
有几种方法,但效果各不相同。
1.修改/etc/security/limits.conf
添加如下两行
* soft nofile 65536
* hard nofile 65536
这种方法仅对当前配置有限,重启系统后就失效了。
2.在/etc/rc.local中添加
ulimit -SHn 65536
可以保证重启系统仍然生效。
注:直接ulimit -SHn 65536只会对当前session中的当前用户生产,如果exit当前登录用户即失效,所以一般没什么用
另:查看当前进程当前的最大可以打开的文件数为
cat /proc/进程ID/limits
...
目录下有以下文件和目录
examples.desktop kobe.txt test.jpg Music Public
现在我需要把examples.desktop 和 kobe.txt移到Music里,一条命令处理完成.
find -type f -maxdepth 1 | grep -v "test.jpg" | xargs -i mv {} Music
其中xargs -i表示将{}替换成标准输入的每一行(即find和grep组合筛选出来的文件)
linux TOP按f键可以出来显示条目选项.按p可以调出SWAP列.
SWAP列相对于进程来说其实就是保存在该进程对应的文件中(而非保留在SWAP分区中).大小等于VIRT-RES的大小.
VIRT为进程申请的虚拟内存大小(但不会全用),如MYSQL为了以后的运行可能申请1G的虚拟内存,但只会将最常用的和正在使用的驻留在内存中.RES即是真正驻留的物理内存大小(即算作真正的内存消耗).