当前位置: 首页 > news >正文

网站的组成部分山东省住房和城乡建设厅门户网站

网站的组成部分,山东省住房和城乡建设厅门户网站,求职简历模板免费,那个建设网站好2.31、守护进程(2)1.守护进程的创建步骤2.什么情况下子进程不会继承父进程的组ID3.哪些操作会导致子进程的组ID发生改变4.kill怎么杀掉守护进程的实现守护进程1.守护进程的创建步骤 执行一个 fork(),之后父进程退出,子进程继续执…

2.31、守护进程(2)

  • 1.守护进程的创建步骤
  • 2.什么情况下子进程不会继承父进程的组ID
  • 3.哪些操作会导致子进程的组ID发生改变
  • 4.kill怎么杀掉守护进程的
  • 实现守护进程

1.守护进程的创建步骤

  • 执行一个 fork(),之后父进程退出,子进程继续执行。 使用子进程的目的是防止创建会话的进程为首进程,创建守护进程(daemon)时,通常需要让该进程摆脱与控制终端的关联,即让它成为一个无终端进程。首进程创建会话会导致新建会话的组id与之前存在的组id相同。
  • 子进程调用 setsid() 开启一个新会话。
  • 清除进程的 umask 以确保当守护进程创建文件和目录时拥有所需的权限。
  • 修改进程的当前工作目录,通常会改为根目录(/)
  • 关闭守护进程从其父进程继承而来的所有打开着的文件描述符。
  • 在关闭了文件描述符0、1、2之后,守护进程通常会打开/dev/null 并使用dup2() 使所有这些描述符指向这个设备。
  • 核心业务逻辑

2.什么情况下子进程不会继承父进程的组ID

  1. 当父进程使用setpgid()系统调用将自己加入到一个新的进程组中,而子进程在此之后被创建时,子进程不会继承父进程的PGID,而是创建一个新的进程组,并将自己作为该进程组的领导进程,PGIDPID相同。
  2. 当父进程在创建子进程之前调用了setsid()系统调用创建了一个新的会话,子进程也会在此之后创建一个新的会话,并成为该会话的领导进程,PGIDPID相同。
  3. 当父进程使用CLONE_NEWPIDCLONE_NEWUSERLinux特有的命名空间创建了一个新的进程隔离环境时,子进程不会继承父进程的PGID

3.哪些操作会导致子进程的组ID发生改变

  1. 调用setpgid()系统调用将子进程加入到一个新的进程组中,子进程的PGID将被设置为指定的PGID
  2. 在子进程中调用setpgid()系统调用将自己加入到一个新的进程组中,子进程的PGID将被设置为指定的PGID
  3. 在子进程中调用setsid()系统调用创建一个新的会话,子进程将成为该会话的领导进程,并且PGIDPID相同。
  4. 在子进程中调用exec()系统调用执行另一个程序,新程序的PGID可能与旧程序不同。

4.kill怎么杀掉守护进程的

  • Linux系统中,kill命令可以向指定进程发送信号。这个过程是通过进程ID(PID)来实现的,而不是通过控制终端。即使守护进程没有控制终端,它也有一个PID,其他进程可以使用这个PID向它发送信号,其中包括kill命令发送的信号。

实现守护进程

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <signal.h>
#include <time.h>
#include <fcntl.h>
#include <string.h>void work()
{// 获取从1970到time_t tm = time(NULL);struct tm* loc = localtime(&tm);// char buf[1024];// sprintf(buf, "%d-%d-%d %d:%d:%d\n", 1900 + loc->tm_year, 1 + loc->tm_mon//     , loc->tm_mday, loc->tm_hour, loc->tm_min, loc->tm_sec);// printf("%s", buf);char* str = asctime(loc);// printf("%s\n", str);int fd = open("time.txt", O_CREAT | O_APPEND | O_RDWR, 0664);write(fd, str, strlen(str));}int main()
{// 创建子进程,让父进程结束掉pid_t proPid = fork();if (proPid > 0){return 0;}// 创建新的会话窗口pid_t sePid = setsid();// 使用umask// mode_t & ~umaskumask(022);// 重定向进程工作目录,但是我们用户没有根目录权限chdir("/home/nowcoder/");// 将标准输出重定向到/dev/null目录下int fd = open("/dev/null");dup2(fd, STDIN_FILENO);dup2(fd, STDOUT_FILENO);sup2(fd, STDERR_FILENO);// 设置信号捕捉struct sigaction act;act.sa_flags = 0;sigemptyset(&act.sa_mask);act.sa_handler = work;sigaction(SIGALRM, &act, NULL);// 从3秒之后每隔两秒发送SIGALAR信号struct itimerval val;val.it_value.tv_sec = 3;val.it_value.tv_usec = 0;val.it_interval.tv_sec = 2;val.it_interval.tv_usec = 0; setitimer(ITIMER_REAL, &val, NULL);while (1){sleep(2);}return 0;
}
http://www.yayakq.cn/news/147057/

相关文章:

  • 企业营销型网站策划cms页面
  • 做内容网站广东建设信息网安管人员系统
  • 网站显示危险网站wordpress上传突然提示需要ftp
  • 国内做轮胎网站哪家好安徽法制建设网站
  • 远丰做网站怎么样建盏金盏能不能喝茶
  • 找人做的网站第二年多钱网站建设道冲
  • 网文网站开发方案seo教程网站优化推广排名
  • 芜湖 网站建设佛山做优化的网络公司
  • 上海网站建设口碑好做网站常用的插件
  • 企业网站推广多少钱无锡互联网前十名公司
  • 用百度云服务器做网站网页界面设计欣赏
  • 四川蓉和建设公司网站网页制作公司代码
  • 导航网站教程天津住房与城乡建设厅网站
  • 3月网站备案白名单在线申请
  • 民宿网站建设方案小学生个人网站怎么做
  • 青岛网站集约化管理平台wordpress 新年插件
  • 深圳网站设计必选成都柚米科技09做宁波 seo整体优化
  • 官方网站下载穿越火线室内设计网站排行榜前十名知乎
  • 苏州城乡建设网站查询河间做网站的公司
  • 自己想做个网站怎么做的长春公司建站模板
  • 网站流量分析指标手机网站友情链接怎么做
  • 百度官方客户端seo刷排名工具
  • 南充响应式网站建设wordpress 软件下载
  • 聚美优品的电子商务网站建设论文wordpress 压缩网站
  • 中国建设信息港网站三只松鼠广告策划书
  • 学校网站建设开发如何注册一个自己的网站
  • 如何请人创建一个网站做彩平的材质网站
  • 上海seo推广平台极限优化主题wordpress
  • 网站备案 哪个省怎么在网站里做关键词优化
  • 网站空间和主机wordpress火车头采集发布模块