---
title: "CentOS之Systemd服务"
date: 2020-06-03T12:04:46+08:00
categories:
- 操作系统
tags:
- centos
- systemd
keywords:
- centos
---
Systemd 就是为了解决[Linux 的启动](http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html)一直采用[`init`](https://en.wikipedia.org/wiki/Init)进程问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。
<!--more-->
## 文章引言
Systemd 就是为了解决[Linux 的启动](http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html)一直采用[`init`](https://en.wikipedia.org/wiki/Init)进程问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。
根据 Linux 惯例,字母`d`是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。
使用了 Systemd,就不需要再用`init`了。Systemd 取代了`initd`,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。
**以下为 Systemd 架构图:**
![上图为 Systemd 架构图](http://www.ruanyifeng.com/blogimg/asset/2016/bg2016030703.png)
## 实例讲解
新建程序目录
```bash
mkdir -p /app/geeknr.com/test
```
进入到test目录
```bash
cd /app/geeknr.com/test
```
使用vim新建文件
```
vim api.service
```
文件内容如下所示,可根据具体需要做更改
```bash
[Unit]
Description=api server
# After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=centos
WorkingDirectory=/app/geeknr.com/test
ExecStart=/app/geeknr.com/test/api
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
RestartSec=30s
```
退出编辑器保存文件
```bash
ESC 和 wq
```
接下来就是制作软链,将文件映射到系统目录
```bash
ln -s /app/geeknr.com/test/api.service /usr/lib/systemd/system
```
让程序随系统启动生效
```bash
systemctl enable api.service
```
启动程序
```bash
systemctl start api.service
```
停止程序
```bash
systemctl stop api.service
```
## 常用命令
```bash
# 相关操作
sudo systemctl <start|stop|status> api.service
# 使用centos用户作为root权限
sudo su - centos
# 查看程序日志
sudo journalctl -fu api.service
```
## 附录资料
- [Systemd 指令 ](https://www.cnblogs.com/zwcry/p/9602756.html)
- [查看使用systemctl启动日志](https://blog.csdn.net/weixin_34159110/article/details/91973870)
## 关于我们
为程序员提供优质博文、实战笔记、开发资源、学习资料内容包括:区块链、架构、Golang、Vuejs、Python、Nodejs、C/C++函数库等等。并不定期奉送各种福利。
![我是图片](https://img.vim-cn.com/5f/63ba18d1e1e7a78c8c7f8ffc83636fd8a3798d.jpg)
> 欢迎订阅:极客笔记Geeknr
>
> 我的名言:梦想还是要有的,万一实现了呢?
>
> 原文链接:http://blog.geeknr.com/index.php/archives/37/
- 关于本书
- 引言
- 准备工作
- 安装 Go语言开发环境
- 开始使用Go
- 创建一个Go模块
- 第一章 手把手系列
- 1.1 教你搭建Nginx教程
- 1.2 教你搭建Jupyter教程
- 1.3 教你搭建Node教程
- 1.4 教你搭建Fabric教程
- 1.5 教你搭建Ethereum教程
- 1.6 教你搭建Bitcoin教程
- 1.7 教你搭建Systemd教程
- 第二章 架构师之路
- 2.1 微服务开发笔记
- 2.2 Docker开发笔记
- 2.3 ElasticSearch开发笔记
- 2.4 Linux开发笔记
- 2.5 Mysql开发笔记
- 2.6 Nginx开发笔记
- 2.7 Redis开发笔记
- 第三章 区块链教程
- 3.1 Bitcoin开发笔记
- 3.2 Ethereum开发笔记
- 3.3 USDT开发笔记
- 第四章 网络知识库
- 4.1 比特币白皮书
- 4.2 以太坊白皮书
- 第五章 技术博客园
- 5.1 Fabric架构详解
- 5.2 技术开发指南
- 5.3 共识机制详解
- 第六章 项目管理
- 6.1 项目运行环境
- 6.2 项目经理的角色
- 6.3 第6、7、8章框架
- 第七章 公务员考公
- 7.1 程序员成功上岸经历
- 7.2 程序员备考的最佳实践
- 7.3 程序员备考过程中会遇到哪些问题?
- 7.4 公考公平吗,35岁再去考可以么?
- 7.5 资料、工具推荐和扩展阅读
- 结论
- 附录