ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
--- 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/