进程控制

一、进程的优先级
取值范围:-20 ~ 19. 值越小,优先级越高
二、调整优先级的方法
(1) 启动进程前调整: nice -n (n指优先级)
(2) 程序运行过程中调整: renice 优先级 -p pid(进程号)
(3) top—> r —> 输入pid —> 输入nice值 —> q (退出)
shift > 向下翻屏 ; shift < 向上翻屏。
三、进程等待
为了解决僵尸进程

    pid_t wait(int *status)
    status:子进程的退出码(8 ~ 16位,范围:0 ~ 255)
            WIFEXITED(sts):如果正常退出,则返回真,才会有退出码;
            WEXITSTATUS(status):得到子进程的退出码;

            WIFSIGNALED(status):如果信号使进程结束,则返回真;
            WTERMSIG(status):获得使该进程结束的信号值;
    返回值:被回收的子进程的进程ID

    //指定某一特定子进程被回收
    pid_t waitpid(pid_t pid,int *status,int flag) 
    pid:
        >0:等待pid子进程的死亡;
        =0:调用者所在进程组的任何一个子进程;
        =-1:任何一个子进程;
        <-1:|pid|进程组的任何一个子进程。
    flag:WNOHANG 如果没有子进程死亡,直接返回0wait(NULL)    //阻塞,直到有一个子进程死亡,并且回收到子进程时才返回   

四、进程等待

    //用file指定的程序替换当前进程
    int execvp(const char *file(可执行程序的名字),char *const argv[](main函数的命令行参数))
    返回值:成功,没有返回值;失败,返回-1.

五、环境变量
1、终端下定义本地变量,该变量只能在当前进程中使用,不能在子进程中使用;
2、将本地变量变成环境变量. export name 环境变量可以在本进程和子进程中使用,但不能在父进程中使用;
3、unset name 删除环境变量;
4、env 查看系统所有的环境变量;
5、系统会为我们定义很多环境变量;
/etc/profile 系统;
~/.bash_profile 自己;
先执行系统的环境变量,再执行自己的环境变量;
6、获得环境变量值 char *getenv(const char *name);
7、设置环境变量 int putenv(const char *name);
8、获取全部环境变量 main函数的第三个参数 char *envp.

影响服务器性能的四大杀手:
数据拷贝、环境切换、内存分配、锁竞争

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值