当我们想卸载httpd 的时候,使用rpm -qa httpd 的时候,我们发现有很多的依赖包。我们耐心的想一个一个的卸载的时候(使用rpm -e httpd-*),还会进入死循环。
解决的办法是:使用 rpm -e httpd-* --nodeps说明:“*”是通配符。
安装CentOS5.3的时候会默认安装httpd服务。
首先查看httpd版本通过下面的命令查看
可以判断出apache版本比较低,而且是随服务器一起安装的
首先停止默认安装的apache服务。
表示卸载成功!我们在来查看下服务里面是否存在,在shell中输入命令setup
发现找不到httpd服务。
......
时区设定:
主要文件
/etc/sysconfig/clock
用北京时间的正确内容应该是
TIMEZONE="Asia/Beijing"
DEFAULT_TIMEZONE="Asia/Beijing"
同时确保 /etc/localtime文件是/usr/share/zoneinfo/Asia/Beijing的拷贝
保持更新:
在/etc/crontab中加入一行
10 5 * * * root /usr/sbin/ntpdate 221.139.48.11 && /sbin/hwclock -w
保证每天早上5:10分时与 ntp服务器 221.139.48.11进行更新,同时写入到bios
......
limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。
limits.conf的格式如下:
username|@groupname type resource limit
username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。
resource:
core - 限制内核文件的大小
date - 最大数据大小
fsize - 最大文件大小
memlock - 最大锁定内存地址空间
nofile - 打开文件的最大数目
rss - 最大持久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户允许登录的最大数目
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so ......
另:要实现某一些linux自带命令相同的功能,(比如:要实现在linux下查询cpu的占用率,linux的命令是top), 可以参考一下该命令(top)的linux源码,
转自http://hi.baidu.com/yanjinbin/blog/item/3d25ebdd29756fea76c6381f.html
# which reboot <---which指令会在环境变量$PATH设置的目录里查找符合条件的文件
/sbin/reboot <--找到文件如下
# rpm -qf /sbin/reboot--通过文件查找起安装包
SysVinit-2.85.34 <-- rpm包名字
# rpm -qi SysVinit-2.85.34 <---查看安装包信息信息,查看源码安装包
然后就去网上找这个源码安装包,下载完源码安装包后,使用rpm2cpio来解压文件:
RedHat下载网址:http://redhat.download.fedoraproject.org/pub/fedora/linux/core/3/SRPMS/
RPM包下载地址:http://ftp.freshrpms.net/pub/freshrpms/redhat/9/
$ rpm2cpio SysVinit-2.85.34.src.rpm | cpio -idv
$ tar xvfz SysVinit-2.85.34.tar.gz
在后你就可以看到的源码目录:SysVinit-2.85.34 ......
在linux的proc文件系统中,通过查看/proc/net/dev文件
可以得到每个网络接口的吞吐量,但是无法获得实时带宽
最近发现了一种基于ncurses库的小程序bmon,可以获得实时带宽
Example:
执行
[root@debian ~]# bmon -o ascii -p eth0
Interface RX Rate RX # TX Rate TX #
eth0 0.00B 0.0 0.00B 0.0
eth0 0.00B 0.0 106.00B 0.0
eth0 0.00B 0.0 106.00B 0.0
eth0 425.00B 2.0 63.00B 1.0
eth0 425.00B 2.0 63.00B 1.0
eth0 105.00B 0.0 33.00B 0.0
eth0 965.00B 1.0 0.00B 0.0
eth0 965.00B 1.0 0.00B 0.0
eth0 186.00B 1.0 93.00B 1.0
eth0 186.00B 1.0 93.00B 1.0
......
问题和常见方法
Linux 提供了 popen 和 pclose 函数 (1),用于创建和关闭管道与另外一个进程进行通信。其接口如下:
FILE *popen(const char *command, const char *mode);
int pclose(FILE *stream);
遗憾的是,popen 创建的管道只能是单向的 -- mode 只能是 "r" 或 "w" 而不能是某种组合--用户只能选择要么往里写,要么从中读,而不能同时在一个管道中进行读写。实际应用中,经常会有同时进行读写的要求,比如,我们可能希望把文本数据送往sort工具排序后再取回结果。此时popen就无法用上了。我们需要寻找其它的解决方案。
有一种解决方案是使用 pipe 函数 (2)创建两个单向管道。没有错误检测的代码示意如下:
int pipe_in[2], pipe_out[2];
pid_t pid;
pipe(&pipe_in); // 创建父进程中用于读取数据的管道
pipe(&pipe_out); // 创建父进程中用于写入数据的管道
if ( (pid = fork()) == 0) { // 子进程
close(pipe_in[0]); // 关闭父进程的读管道的子进程读端
close(pipe_out[1]); // 关闭父进程的写管道的子进程写端
dup2(pipe_in[1], STDOUT_FILENO); // 复制父进程的读管道到子进程的标准输出
dup2(pipe_out[0], STDIN_FILENO) ......