---
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 架構圖:**

## 實例講解
新建程序目錄
```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++函數庫等等。并不定期奉送各種福利。

> 歡迎訂閱:極客筆記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 資料、工具推薦和擴展閱讀
- 結論
- 附錄