浅谈systemd原理和应用
多不说,直接上代码(可谓配置):
[Unit]
Description=demo app
After=network-is-online.target [Service]
Type=Simple
ExecStart=/usr/bin/demo [Install]
WantedBy=multi-user.target
:表达的意思是在network已经online情况下则启动该服务,如果上述文件为/lib/systemd/system/下的demo_app.service,则启动。
tips:
cd /lib/systemd/system
systemctl is-enabled demo_app.service
systemctl enable demo_app.service
1. systemd崛起
聊聊linux系统的应用启动服务的机制:
sysinit -> upstart -> systemd
systemd 主要是针对sysinit“发热而生”,所谓热则是/etc/init.d/xxx.sh,运行一连串的shell,以串行的机制无休止running脚本,弊端颇多。
2. systemd基本过程
核心是通过套接字进行激活通讯的,简单点则是套接字trigger一切/下一个服务,不存在依赖关系。
套接字用socket,表示为------>: A. ------>B ------> D
\
\
------>C ------> E
T1 T2 T3 Ts = T3 - T1
对比串行则
A - > B T2-T1
A - > C T2-T1
B - > D T3-T2
C - > E T3-T2 Ti = 2(T3-T1) = 2 Ts
3. 应用更加广泛,请看下eg
[Unit]
Description=demo app
After=network-on-line.target
Before=mysql-running.target [Service]
Type=Simple
ExecStart=/usr/bin/demo [Install]
WantedBy=multi-user.target
在network启动后启动demo,在mysql启动前启动demo,保证demo需要用到网络,但是不需要等mysql(启动完3s)才开始该服务。(纯属假定场景)
至于.target怎么形成,下文继续分解。
浅谈systemd原理和应用的更多相关文章
- 浅谈xss原理
近日,论坛上面XSS满天飞,各处都能够见到XSS的痕迹,前段时间论坛上面也出现了XSS的迹象.然后我等小菜不是太懂啊,怎么办?没办法仅仅有求助度娘跟谷歌这对情侣了. 能够说小菜也算懂了一些.不敢藏私, ...
- 浅谈 zookeeper 原理,安装和配置
当前云计算流行, 单一机器额的处理能力已经不能满足我们的需求,不得不采用大量的服务集群.服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,那么这些信息如何推送到各个节点?并且 ...
- [Hadoop]浅谈MapReduce原理及执行流程
MapReduce MapReduce原理非常重要,hive与spark都是基于MR原理 MapReduce采用多进程,方便对每个任务资源控制和调配,但是进程消耗更多的启动时间,因此MR时效性不高.适 ...
- 浅谈AQS原理
一.AQS介绍 AQS,即AbstractQueuedSynchronizer, 抽象队列同步器,它是Java多线程模块用来构建锁和其他同步组件的基础框架.来看下同步组件对AQS的使用: AQS是一个 ...
- ConcurrentHashMap——浅谈实现原理及源码
本文整理自漫画:什么是ConcurrentHashMap? - 小灰的文章 - 知乎 .已获得作者授权. HashMap 在高并发下会出现链表环,从而导致程序出现死循环.高并发下避免HashMap 出 ...
- 浅谈HashMap原理,记录entrySet中的一些疑问
HashMap的底层的一些变量: transient Node<K,V>[] table; //存储数据的Node数组 transient Set<java.util.Map.Ent ...
- 浅谈Promise原理与应用
在JavaScript中,所有代码都是单线程.由于该“缺陷”,JavaScript在处理网络操作.事件操作时都是需要进行异步执行的.AJAX就是一个典型的异步操作 对于异步操作,有传统的利用回调函数和 ...
- 浅谈CAS(Compare and Swap) 原理
浅谈CAS原理java并发编程也研究了一段时间了,对CAS的原理总是不太理解,今天再研究了一下,记录一些自己的理解. 说到CAS,再java中的某些情况下,甚至jdk1.5以后的大多数情况,并发 ...
- MVC5-11 浅谈拦截器
Filter拦截器 Aop是MVC的主要设计方式之一,而微软也希望我们在使用MVC的时候更好的使用拦截器来进行切面编程.拦截器则是Mvc中的一大亮点与重点 AOP(面向切面)编程已经广泛应用在各个项目 ...
随机推荐
- shell脚本之判断当前内核主版本是否为3,且次版本是否大于10
[root@localhost ~]# cat uname.sh #!/bin/bash main=`uname -r | awk -F . '{print $1}'` minor=`uname -r ...
- PostgreSQL VACUUM 之深入浅出 (一)
前言 VACUUM 是 PostgreSQL MVCC (Multiversion concurrency control) 实现的核心机制之一,是 PostgreSQL 正常运行的重要保证.本文将通 ...
- Qunar风控安全产品的探索之路
李建威.2017年7月以春招实习生的身份加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码.设备指纹以及环境检测等服务.目前主要负责反爬风控的基础安全产品建设.对各类作弊原理感 ...
- 编写资源yaml文件、压力机配置hosts
资源文件 Deployment/StatefulSet/DaemonSet.Service.Ingress等 参考:https://www.cnblogs.com/uncleyong/p/155710 ...
- 什么是Ajax?全面了解
一:Ajax 引入Ajax: 我们知道,前端页面想要和后端进行数据交互,可以通过以下方式 将参数添加到url中,后端通过get方式从url中获取数据 GET请求 前端页面通过form表单,将数据以ge ...
- Smartbi研究院分享:数据仓库的五大特点
我先给大家举个例子,首先数据仓库,从字面上理解就可以感受到这是一个很大的空间,而且存储的物品很杂,里面会存放酱油.沐浴露.洗发精等物品,而数据库是存放酱油.盐等厨房用品,洗浴又是一个数据库.另外一个 ...
- 换行符号(\r\n)的历史
文章来源:https://cloud.tencent.com/developer/article/1730918 \r\n与\n是有区别的. 如果要通用的则是\r\n,因为有些编辑器它不认\n &qu ...
- LayUI使用注意
# layui获取.修改checkbox的值 <input type="checkbox" name="MySwitch" value="x&q ...
- oj教程--栈
栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放到栈 ...
- mysql-8.0.12 安装使用教程
Microsoft Windows [版本 10.0.15063] (c) 2017 Microsoft Corporation.保留所有权利. C:\WINDOWS\system32>D: D ...