跟我学 systemd
跟我学 systemd
摘要
我的系列文档
Netkiller Architect 手札 |
Netkiller Developer 手札 |
Netkiller PHP 手札 |
Netkiller Python 手札 |
Netkiller Testing 手札 |
---|---|---|---|---|
Netkiller Cryptography 手札 |
Netkiller Linux 手札 |
Netkiller Debian 手札 |
Netkiller CentOS 手札 |
Netkiller FreeBSD 手札 |
Netkiller Shell 手札 |
Netkiller Security 手札 |
Netkiller Web 手札 |
Netkiller Monitoring 手札 |
Netkiller Storage 手札 |
Netkiller Mail 手札 |
Netkiller Docbook 手札 |
Netkiller Project 手札 |
Netkiller Database 手札 |
Netkiller PostgreSQL 手札 |
Netkiller MySQL 手札 |
Netkiller NoSQL 手札 |
Netkiller LDAP 手札 |
Netkiller Network 手札 |
Netkiller Cisco IOS 手札 |
Netkiller H3C 手札 |
Netkiller Multimedia 手札 |
Netkiller Perl 手札 |
Netkiller Amateur Radio 手札 |
Netkiller DevOps 手札 |
您可以使用iBook阅读当前文档
目录
- 1. 什么是 systemd
- 2. why-为什么做
- 3. systemd 是何时被采用的
- 4. 那些系统使用 systemd
- 5. system 是谁开发的
- 6. 怎样编写systemd脚本
- 6.1. Unit
- 6.2. Service
- 6.3. Install
1. 什么是 systemd
systemd是Linux电脑操作系统之下的一套中央化系统及设置管理程序(init软件),包括有守护进程、程序库跟应用软件,由Lennart Poettering带头开发。 其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。
2. why-为什么做
与多数发行版使用的System V风格init相比,systemd采用了以下新技术:
- 采用Socket激活式与D-Bus激活式服务,以提高相互依赖的各服务的并行运行性能;
- 用cgroups代替进程ID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
3. systemd 是何时被采用的
CentOS 7 开始系统默认使用 systemd,对于用户来说就是service被systemctl替代了。
4. 那些系统使用 systemd
基本上从 Redhat 派生出的Linux操作系统基本都切换到了 systemd,Ubuntu也采用了systemd
5. system 是谁开发的
由Lennart Poettering带头开发
6. 怎样编写systemd脚本
下面是一个启动tomcat的systemd脚本,以此脚本为例我带大家进入 systemd 的世界。
例 1. /usr/lib/systemd/system/tomcat.service
####################################################
# Homepage: http://netkiller.github.io
# Author: netkiller<netkiller@msn.com>
# Script: https://github.com/oscm/shell
# Date: 2015-11-03
####################################################
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
After=syslog.target
[Service]
Type=forking
User=www
Group=www
#EnvironmentFile=/etc/sysconfig/tomcat
ExecStartPre="rm -rf /srv/apache-tomcat/logs/*"
ExecStart=/srv/apache-tomcat/bin/startup.sh
#ExecStartPost=
ExecStop=/srv/apache-tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
脚本安装到 /usr/lib/systemd/system/tomcat.service 下面
systemctl enable tomcat
systemctl start tomcat
systemctl stop tomcat
systemctl disable tomcat
启用脚本的时候会创建一个符号链接
[neo@netkiller ~]# ll /etc/systemd/system/multi-user.target.wants/tomcat.service
lrwxrwxrwx 1 root root 38 Nov 3 04:06 /etc/systemd/system/multi-user.target.wants/tomcat.service -> /usr/lib/systemd/system/tomcat.service
6.1. Unit
Description 写一段文字描述该脚本
After 等待网络就绪后运行
6.2. Service
Type 启动类型
User, Group 运行 ExecStart 脚本的用户,相当于 su - user -c ExecStart
Environment 环境变量,EnvironmentFile 环境变量文件
ExecStartPre 开始之前运行的脚本,ExecStart 启动脚本, ExecStartPost 启动之后运行的脚本
ExecStop 停止脚本
6.3. Install
WantedBy=multi-user.target 安装到多用户模式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP实现的用户注册表单验证功能简单示例
- php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
- 微信企业转账之入口类分装php代码
- python输出结果刷新及进度条的实现操作
- PHP实现微信申请退款功能
- python 读取.nii格式图像实例
- PHP实现八皇后算法
- 浅析php如何实现爬取数据原理
- Python 存取npy格式数据实例
- 微信支付之JSAPI公众号支付详解
- 浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
- Python代码执行时间测量模块timeit用法解析
- Laravel框架实现简单的学生信息管理平台案例【附源码下载】
- numpy 矩阵形状调整:拉伸、变成一位数组的实例
- 使用Nibabel库对nii格式图像的读写操作