执行一个shell命令,他就相当于一个few的封装
system - execute a shell command
SYNOPSIS
#include <stdlib.h>
int system(const char *command)
8、进程会计
只是一个方言。
acct();
#include <unistd.h>
int acct(const char *filename);
9、进程时间
命令:time 可执行文件
这个time怎么来的?就是当前shell文件,等待程序执行完毕的时间间隔
times();
NAME
times - get process times
SYNOPSIS
#include <sys/times.h>
clock_t times(struct tms *buf);
除了time计时,还有clock_t计时,比秒数更精确,是滴答数
10、守护进程
怎么查看守护进程?ps axj
1.脱离控制终端,TTY 为 ?
2.SID 和 PGID 和 PID 相同
3.守护进程的PPID 一定是1,就是守护进程的父进程一定是1号进程,
因为只有子进程能进化为守护进程,进化之后脱离父进程或者关闭父进程
要完成单实例的守护进程:使用锁文件,/var/run/name.pid
每次启动都会往name.pid里写入自己的pid
开机启动脚本文件:/etc/rc*
守护进程就是后台运行的进程,也叫精灵进程
大多数是server端
守护进程是一个会话的领导者,也是一个所属组的领导者
会话:session,http里的session是用来标识一组连接的
在unix里,一次成功的shell登陆,就是一个session
session标识:sid
setsid();
getpgrp(); //查看某一个进程的组的id
getpgid(); //获得某一个进程的pid
setpgid(); //将某一个进程放入到某一个组中
NAME
setsid - creates a session and sets the process group ID
SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
pid_t setsid(void);
终端:现在基本是虚拟终端,真正的终端只会输入输出