文档章节

跟我学 systemd

netkiller-
 netkiller-
发布于 2015/11/12 09:49
字数 1032
阅读 177
收藏 9

跟我学 systemd

http://netkiller.github.io/journal/os.systemd.html

MrNeo Chen (陈景峯)netkiller, BG7NYT


中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890

<netkiller@msn.com>

版权 © 2015 http://netkiller.github.io

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

文档出处:
http://netkiller.github.io
http://netkiller.sourceforge.net

微信扫描二维码进入 Netkiller 微信订阅号

QQ群:128659835 请注明“读者”

2015-11-04

摘要
我的系列文档
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

systemd是Linux电脑操作系统之下的一套中央化系统及设置管理程序(init软件),包括有守护进程、程序库跟应用软件,由Lennart Poettering带头开发。 其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。

2. why-为什么做

与多数发行版使用的System V风格init相比,systemd采用了以下新技术:

  1. 采用Socket激活式与D-Bus激活式服务,以提高相互依赖的各服务的并行运行性能;

  2. 用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 安装到多用户模式

© 著作权归作者所有

共有 人打赏支持
netkiller-

netkiller-

粉丝 691
博文 259
码字总数 353246
作品 10
深圳
部门经理
私信 提问
开发人员学Linux(3):CentOS7中安装JDK8和Tomcat8

本系列不是为Linux运维人员准备的,而是主要为开发人员准备的,包括但不限于: 希望了解Linux的开发人员; 需要在Linux上部署一些组件的开发人员,如Memcached/Nginx/Redis等; 需要使用一些...

周金桥
2017/11/02
0
0
【备忘】阿里云云主机安装centos从入门到使用视频

百度网盘下载1-1 ECS&Centos7导学.mp41-2 ECS基础介绍.mp41-3 ECS云服务逻辑架构.mp41-4 阿里云管理控制台使用.mp42-1 ECS云服务构建.mp42-2 阿里云节点BGP和专线概念介绍.mp42-3 ECS如何按照...

javail
11/08
0
0
纠正自己对systemd的一个错误认知

以前一直以为,systemd只会到/etc/systemd/system读取配置文件。要enable某个service就是copy service的配置文件到/etc/systemd/system目录下或者建一个symlinks。 昨天,想在启动时自动执行...

阿托
2014/07/05
0
0
linux systemd 使用

Systemd 使用手册 https://www.freedesktop.org/software/systemd/man/systemctl.html How to write startup script for systemd https://unix.stackexchange.com/questions/47695/how-to-wr......

易野
10/22
0
0
OpenVPN配置错误导致不能正常升级

报错 Setting up procps (2:3.3.9-9+deb8u1) ... Job for systemd-sysctl.service failed. See 'systemctl status systemd-sysctl.service' and 'journalctl -xn' for details. invoke-rc.d:......

破旧的大卡车
11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊flink的FsStateBackend

序 本文主要研究一下flink的FsStateBackend StateBackend flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/StateBackend.java @PublicEvolvingpublic interface Sta......

go4it
10分钟前
0
0
webpack配置proxyTable时pathRewrite无效的解决方法

webpack配置接口地址代理 在项目开发中,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们在本地启动服务器后,比如本地开发服务下是 http://localhost:8080 ...

前端小攻略
11分钟前
0
0
安装jenkins

1.下载 wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.155/jenkins.war 2.后续操作和 dubbo 安装类似: (1)复制一份空白的tomcat,重命名为:jenkins-tomcat (2)war包放入t...

狼王黄师傅
19分钟前
1
0
zookeeper配置与使用

一.登录官网下载 不要带后缀的,那是公侧版本,下稳定版,比如3.4.9 二.安装与使用 解压后bin里是启动程序 配置文件:在conf下 复制zoo_sample.cfg改名为为zoo.cfg,打开zoo修改文件...

小兵胖胖
43分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部