三、進程管理、進程控制
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)每個進程最多打開的文件數。更改此限制將影響到sysconf函數在參數-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文件中