文章引言
Systemd 就是为了解决Linux 的启动一直采用init
进程问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。
根据 Linux 惯例,字母d
是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。
使用了 Systemd,就不需要再用init
了。Systemd 取代了initd
,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。
以下为 Systemd 架构图:
上图为 Systemd 架构图实例讲解
新建程序目录
mkdir -p /app/geeknr.com/test
进入到test目录
cd /app/geeknr.com/test
使用vim新建文件
vim api.service
文件内容如下所示,可根据具体需要做更改
[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
退出编辑器保存文件
ESC 和 wq
接下来就是制作软链,将文件映射到系统目录
ln -s /app/geeknr.com/test/api.service /usr/lib/systemd/system
让程序随系统启动生效
systemctl enable api.service
启动程序
systemctl start api.service
停止程序
systemctl stop api.service
常用命令
# 相关操作
sudo systemctl <start|stop|status> api.service
# 使用centos用户作为root权限
sudo su - centos
# 查看程序日志
sudo journalctl -fu api.service
附录资料
关于我们
为程序员提供优质博文、实战笔记、开发资源、学习资料内容包括:区块链、架构、Golang、Vuejs、Python、Nodejs、C/C++函数库等等。并不定期奉送各种福利。
我是图片欢迎订阅:极客笔记Geeknr
我的名言:梦想还是要有的,万一实现了呢?
网友评论