systemctl管理服务

base信息:centos 7.6

centos6版本之前服务管理采用service命令,但在centos7版本后使用systemctl命令来管理系统服务,systemctl命令语法格式如下:

1
systemctl [选项] [服务名]

常用选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
start						:表示启动服务
restart :表示重启服务
status :表示查看服务状态
reload :表示重新加载
stop :表示停止服务
enable :表示服务开机自启
disable :表示禁止服务开机自启
list-unit-files :列出系统所有已安装的服务单元
list-units [PATTERN...] :列出当前内存中的服务单元
get-default :查看系统默认运行级别
set-default TARGET :设置系统默认运行级别
reboot :重启
poweroff :关机
cat :查看服务的启动配置文件

用service来管理服务的时候,是在/etc/init.d/目录中创建一个脚本文件,来管理服务的启动和停止,在systemctl中,也类似,文件目录有所不同,在/lib/systemd/system目录下创建一个脚本文件redis.service,里面的内容如下:

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf --daemonize no
ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]
WantedBy=multi-user.target

[Unit] 表示这是基础信息

  • Description 是描述
  • After 是在那个服务后面启动,一般是网络服务启动后启动

[Service] 表示这里是服务信息

  • ExecStart 是启动服务的命令
  • ExecStop 是停止服务的指令

[Install] 表示这是是安装相关信息

  • WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

这里做了一个软链接处理,文件安装在/software/redis-5.0.8 中,切换到/usr/local/目录下,执行 ln -s /software/redis-5.0.8/ redis。相关操作

创建service软链接

创建软链接是为了下一步系统初始化时自动启动服务

1
ln -s /lib/systemd/system/redis.service /etc/systemd/system/multi-user.target.wants/redis.service

image-20220608224013727

刷新配置

1
systemctl daemon-reload

开机自启动

1
systemctl enable redis

禁止开机自启动

1
systemctl disable redis
1
2
systemctl disable redis
Removed symlink /etc/systemd/system/multi-user.target.wants/redis.service.

查看状态

1
systemctl status redis
如果觉得写的还行,赞助瓶脉动~
0%