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

操作系统相关知识

1. 守护进程

1.1.什么是守护进程?

主要是将服务器方面的程序给隐藏到控制端下面。比如redis的,我们启动redis-server后,他会有一个图像化的界面,如果没有开启守护进程,你在set key value 后会有一个日志的打印。

如果你不小心按到ctrl +c了,不好意思,你的服务器dump掉了。

1.2.为什么要守护进程?

就是为了解决上述1说的守护进程就是为了隐藏到控制界面下面。

试想一下,如果你的电脑调打开了很多程序,这个时候都有一个界面放到这给你看。我们可以通过指令查看一下linux下有哪些开启了守护进程。

ps -axj
 PPID     PID    PGID     SID TTY        TPGID STAT   UID   TIME COMMAND
      0       1       1       1 ?             -1 Ss       0   0:08 /sbin/init auto noprompt splash splash 3
      0       2       0       0 ?             -1 S        0   0:00 [kthreadd]
      2       3       0       0 ?             -1 I<       0   0:00 [rcu_gp]
      2       4       0       0 ?             -1 I<       0   0:00 [rcu_par_gp]
      2       5       0       0 ?             -1 I<       0   0:00 [slub_flushwq]
      2       6       0       0 ?             -1 I<       0   0:00 [netns]
      2       7       0       0 ?             -1 I        0   0:06 [kworker/0:0-events]
      2       8       0       0 ?             -1 I<       0   0:00 [kworker/0:0H-events_highpri]
      2      10       0       0 ?             -1 I<       0   0:00 [mm_percpu_wq]
      2      11       0       0 ?             -1 S        0   0:00 [rcu_tasks_rude_]
      2      12       0       0 ?             -1 S        0   0:00 [rcu_tasks_trace]
      2      13       0       0 ?             -1 S        0   0:00 [ksoftirqd/0]
      2      14       0       0 ?             -1 I        0   0:03 [rcu_sched]
      2      15       0       0 ?             -1 S        0   0:00 [migration/0]
      2      16       0       0 ?             -1 S        0   0:00 [idle_inject/0]

 这只是一部分,至少要有一百多个开启守护进程的进程来启动服务。比如,脏页置换,网络io,如果你启动了比如,nginx,reids等等服务器,你开启xshell服务,如果有一百多个操作窗口,你肯定是要崩溃的。

目的:就是将应用服务隐藏到控制端下面,如果想调用,或者查看在通过指令切换查看就OK了,没必要全部摆到你的应用上让你看,尤其是涉及到操作系统本身的一些守护进程,很多很复杂,也没必要展示给程序员开,同时,给你看,你也不能中断该服务啊,你要是能中断了,你操作系统也太脆弱了。

1.3.守护进程干了什么?

所谓守护进程,其实就是让应用在控制界面后台提供服务。我们可以看到有很多进程的状态都是S睡着的。

这里扩展一下,进程的状态的讲解:

1.3.1进程的状态

从理论分析,进程状态有:就绪,运行,阻塞,

进程状态的附加符

1.4.如何创建守护进程?

进程:可以理解成上面redis-server的应用程序;

守护进程就是,要开启将上述redis-server给隐藏到后台,什么操作能够做到即能维持redis-server本身服务的不断,而又能够进行后台的转变呢?**开启子进程**使用fork函数。

具体的创建细节可以看其他的博客,这里展示不讲解。


http://www.kler.cn/a/589404.html

相关文章:

  • 最短路径--dijkstra
  • Word 小黑第22套
  • 李宏毅NLP-1-课程介绍
  • 新能源汽车IGBT电压平台与SiC器件应用
  • 类和对象的创建
  • Python(1.1)Python实战:一键批量重命名图片文件,告别手动整理!(附完整源码)
  • python调用百度人脸识别接口
  • 【前端面试题】宏任务与微任务的区别
  • C语言之 循环语句:程序运行的核心动力(上)
  • vuex持久化存储,手动保存到localStorage
  • 奥林巴斯道Olympus DAO、奥拉丁模式、诺瓦银行、RWA模型合约解析开发
  • 大数据学习(70)-大数据调度工具对比
  • Navigation页面导航的使用
  • 基于javaweb的SpringBoot校园运动会管理系统设计与实现(源码+文档+部署讲解)
  • 6k ± 1 规则
  • 自然语言处理编程文档
  • 数组题型-二分查找-JS
  • 实战:自适应均衡的设计与实现
  • 【Docker】容器中安装cron命令
  • 使用 Docker 部署 MySQL 8