三、进程管理、进程控制
solaris有一组PROC工具,处理/PROC信息;/proc/nnn 显示了process nnn 的信息
;
所以/proc/*可以表示为系统的所有进程;
对每个进程都有一组资源限制,其中一些可以用getrlimit和setrlimit函数查询和更改
;
solaris:
#include
int getrlimit(int resource, struct rlimit *rlp);
int setrlimit(int resource, const struct rlimit *rlp);
1. RLIM_CORE(SVR4及4.3+BSD)core文件的最大字节数,若其值为0则阻止创建
core
文件。
(2)RLIMIT_CPU(SVR4及4.3+BSD)CPU时间的最大量值(秒),当超过此软限止时,向该进
程发送SIGXCPU信号。
(3)RLIMIT_DATA(SVR4及4.3+BSD)数据段的最大字节长度。初始化数据、非初始化数据
以及堆的总和。
(4)RLIMIT_FSIZE(SVR4及4.3+BSD)可以创建的一个文件的最大字节长度。当超过此软限
制时,则向该进程发送SIGFSZ信号。
(5)RLIMIT_NOFILE(SVR4)每个进程最多打开的文件数。更改此限制将影响到sy
sconf函数在参数-sc-OPEN-MAX中返回的值
(6)RLIMIT_NPROC(4.3+BSD)每个实际用户ID所拥有的最大子进程数。更改此限制将影响
到sysconf函数在参数;
(7)RLIMIT_STACK(SVR4及4.3+BSD)栈的最大字节长度。
(8)RLIMIT_VMEM(SVR4)可映照地址空间的最大字节长度。这影响到mmap函数。资源
限制影响到调用进程并由其子进程继承。这就意味着为了影响一个用户的所有后续进程
,需将资源限制设置构造在shell之中。确实,Bourne Shell和Kornshell具有内部
ulimit命令,CShell具有内部limit命令。(umask和chdir也必须是shell内部的)。
较早的Bourme Shell,例如由贝克莱提供的一种,不支持ulimit命令。较新的
KornShell的ulimit命令具有-H和-s选择项,以分别检查和修改硬和软的限制;
linux:
#include
#include
#include
int getrlimit (int resource, struct rlimit *rlim);
int getrusage (int who, struct rusage *usage);
int setrlimit (int resource, const struct rlimit *rlim);
四、cron处理
文件:/var/spool/cron/crontabs/root由
/etc/init.d/cron start启动
/etc/init.d/cron stop关闭
0 0 * * * /usr/local/apache1312/logs/runlog.sh
1-59 * * * * /home/zrh/card/cgi-bin/bin/bbs
20 0 * * * /usr/local/apache1312/logs/ftplog
0 12 * * * /home/zrh/card/cgi-bin/bin/love1
如果有一个程序需要由INFORMIX用户执行,则写在相应路径informix文件中