实验三:守护进程

2Q==实验 3 守护进程实验

 一、 实验要求

 ( 1 ) 了解守护进程的主要内容以及守护进程的编程要点, 学会运用守护进程, 为自 己所要运行的应用提供服务或者提高所属的安全性。

 ( 2 ) 守护进程是脱离终端的进程, 了解其与其他进程之间的区别, 学会通过终端相 应的命令查看守护进程的运行内容, 由于守护进程运行过程中产生的信息不会在终 端上显示, 所以要熟练掌握相应的命令。 

( 3 ) 掌握如何脱离控制终端和进程组,如何使守护进程重新申请打开一个控制终端, 了解为何要将文件创建掩码清楚, 重设文件创建掩码。 

( 4 ) 掌握如何用代码改变当前工作目录, , 为何要修改当前工作目录, 学会如何处 理标准输入, 输出, 标准错误输出带来的浪费系统资源而带来的问题。

 二、 准备工作 

( 1 ) 在做实验前要先了解进程和守护进程之间区别, 一个进程属于一个进程组, 同 进程组中的进程共享一个控制终端, 父进程 fork 后是子进程的端口号, 而子进程 fork 后返回的是 0, 而一个进程是受父进程的影响, 这就需要调用 setsid() 来摆脱 终端的控制。

 ( 2 ) 了解 umask 将文件权限设置为对守护进程有意义的模式, umask 命令后直接跟 权限掩码, 可以临时修改权限掩码, 普通用户的 umask 是 002 , root 用户的 umask 是 022.

 ( 3 ) 还需了解 chdir 命令, 用于改变当前工作目录, 是一个系统调用函数, 如果是 绝对目录, chdir 会更改默认目录。 

( 4 ) 知道 /dev/null 就是重定向, 将结果重定向到空设备文件, 它会丢弃一切写入 其中的数据, 而且没有任何可以读取的内容。

 三、 实验步骤

doc?datatype=pic&dp_logid=9083558284643665150&expires=3h&fid=1100624838138-250528-949903276839090&ipmd5=acdceda3f42d0798963560dd3f8a796c&method=data&nf=1&object=2cd3f6d2ao351d0a095d2b4cd4b74ae3&rt=pr&sign=FOTRE-DCb740ccc5511e5e8fedcff06b081203-n25yWzziDq5c9rAzYUNJPy0cy0Y%253D&timestamp=1689161423&uar=bae6e51073443f5d62369a4600207035&client_type=wangpan&env=native&product=pan&pagenum=2 1. 脱离终端和进程组。 

( 1 ) 在进程 p 中创建新进程 p1, 让父进程退出只留下子进程 p1 , 利用父进程和子进 程返回 fork 值的特点, 在调用 setsid() 命令, 让子进程脱离父进程的影响, 通过 创建会话使进程从终端释放出来。 代码部分如图 1 :

820c9f54fdcb4f6eaf935dfe054ba694.jpg

 通过百度网盘分享的文件:20215232…
链接:https://pan.baidu.com/s/1AnMr0sei7qRXuH9VlyaDCg 
提取码:gy33

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值