限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410

紧接着上篇systemd详解,这里介绍下函数:运行环境初始化。该函数主要用于确保系统或用户服务在启动时具有正确的环境设置,如资源限制、挂载、安全策略等,从而保证整个系统的稳定运行。该处也不涉及unit启动的流程,但是已经很接近了。

流程图

详解增发万亿国债细节_详解金球奖之争_systemd详解

源码

1. update_cpu_affinity(skip_setup);

通过.conf配置中的字段通过设置cpu的亲和性,如果配置中没有该字段,则不会设置。

2. update_numa_policy(skip_setup);

通过.conf配置中的字段设置进程的内存访问策略,如果涉及的领域为终端设备,一般不涉及多节点内存,故不会进行设置。

3.  install_crash_handler();

systemd详解_详解金球奖之争_详解增发万亿国债细节

r函数流程

该函数定义了进程对信号R的处理逻辑,即发生崩溃或者异常终止时调用crash函数。R信号包含:,,,,,。根据配置中的参数进行不同的处理:

4. r = mount_cgroup_controllers()

详解增发万亿国债细节_详解金球奖之争_systemd详解

lers

该函数的主要功能是挂载系统内核支持的所有 控制器,可以通过读取/proc/获取。根据控制器之间的关联关系可以一起挂载,如cpu 和 、 和 。

5. machine_id_setup(/* root= */ NULL, /* force_transient= */ first_boot, arg_machine_id, /* ret_machine_id */ NULL);

这个函数负责管理和维护系统的-id,-id主要用于机器标识符,全局唯一并且持久化。如果参数中没有-id,则读取/etc/-idsystemd详解,不为空则返回读取值,为空则生成一个id。-id由于是全局唯一的,为了防止修改,权限是只读的。

6. bump_unix_max_dgram_qlen();
   bump_file_max_and_nr_open();

上面2个函数分别用于提升,file-max和参数

7.  r = watchdog_set_device(arg_watchdog_device);

systemd详解_详解金球奖之争_详解增发万亿国债细节

该函数用于设置全局变量,即硬件看门狗/dev/。中有硬件和软件看门狗:

8. r = make_reaper_process(true);

该函数设置为子进程的默认守护进程,即当该进程下的子进程结束时,如果它们没有父进程或者父进程没有处理它们的退出状态,那么这些子进程的资源回收将由进程负责。

9. (void) bump_rlimit_nofile(saved_rlimit_nofile);
    (void) bump_rlimit_memlock(saved_rlimit_memlock);

同6,提升和参数值。

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410