限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410
紧接着上篇systemd详解,这里介绍下函数:运行环境初始化。该函数主要用于确保系统或用户服务在启动时具有正确的环境设置,如资源限制、挂载、安全策略等,从而保证整个系统的稳定运行。该处也不涉及unit启动的流程,但是已经很接近了。
流程图
源码
1. update_cpu_affinity(skip_setup);
通过.conf配置中的字段通过设置cpu的亲和性,如果配置中没有该字段,则不会设置。
2. update_numa_policy(skip_setup);
通过.conf配置中的字段设置进程的内存访问策略,如果涉及的领域为终端设备,一般不涉及多节点内存,故不会进行设置。
3. install_crash_handler();
r函数流程
该函数定义了进程对信号R的处理逻辑,即发生崩溃或者异常终止时调用crash函数。R信号包含:,,,,,。根据配置中的参数进行不同的处理:
4. r = mount_cgroup_controllers()
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);
该函数用于设置全局变量,即硬件看门狗/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