Linux系统服务systemctl怎么用

60次阅读
没有评论

共计 2529 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要为大家展示了“Linux 系统服务 systemctl 怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“Linux 系统服务 systemctl 怎么用”这篇文章吧。

服务:常驻系统内存中的进程且可以提供一些系统和网络功能; 现在最新的 Linux 系统都统一使用 systemctl 进行服务的管理。

1、运行级别的分类 runlevel

运行级别 0:系统停机状态

运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆

  运行级别 2:多用户状态 (没有 NFS)

运行级别 3:完全的多用户状态 (有 NFS)

运行级别 4:系统未使用,保留

  运行级别 5:X11 控制台

运行级别 6:系统正常关闭并重启

2、管理服务 systemctl (root 权限)

systemctl [opt] xxx.service

status 查看当前服务状态

start 启动服务

stop   关闭服务

restart 重启服务

enable 设置开机启动

disable 设置开机不启动

reload   后面不接具体服务名,重新加载配置文件

mask 注销服务

unmask 取消注销

3. 一些常用命令 systemctl

查看当前已经启动的服务 systemctl list-units

查看所有服务 systemctl list-unit-files

查看服务有哪些依赖 systemctl list-dependencies xx.service

查看服务有哪些依赖 (反向) systemctl list-dependencies –reverse xx.service

4.system 服务相关的一些目录 (Centos 环境,Debian 类的环境可能会有稍许不同)

/usr/lib/systemd/system/ 系统安装的软件默认启动脚本目录

/etc/systemd/system/   用户根据自己需要建立的启动脚本目录

/etc/sysconfig/ 服务初始化选项目录

/var/lib/ 服务运行时产生的数据存储目录

/etc/xxx/   各服务配置目录

5. 结合一个例子来具体讲解,一台机开启两个 ssh 服务

我们最常使用的 ssh 服务,系统默认 ssh 服务 22 端口,我现在想再开一个 ssh 服务,端口 8888

1. 系统服务启动脚本 /usr/lib/systemd/system/sshd.service,将其复制到 /etc/systemd/system/   下,并改名为 sshd2.service,文件内容如下

[Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] Type=notify EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target

因为要重启一个新的服务,所以要修改一下 ExecStart 这一行,读取新的配置文件 sshd2_config,改为

ExecStart=/usr/sbin/sshd -D $OPTIONS -f /etc/ssh/sshd2_config

2. 到 /etc/ssh/ 下,将 sshd_config 复制到 sshd2_config,并修改端口那一行

Port 8888

3. 运行命令 systemctl reload 重新加载一下配置

4. 运行命令 systemctl status sshd2.service 查看状态

5 运行命令 systemctl start sshd2.service 开启服务

6. 运行命令 systemctl enable sshd2.service 设置开机启动

7. 在另一台机器上登录 ssh fancy@ip -p8888 就可以登录了

注意 1,防火墙要打开 8888 端口

注意 2,官方建议用户自己新建的服务脚本最好存放在 /etc/systemd/system/ 目录下,实际情况下存放在系统服务目录  /usr/lib/systemd/system/ 下也是没有问题的,看个人选择了

6、我们再来举个例子,做一个自己的服务

1. 在 /root/bin/ 下创建一个 shell 脚本 fancy_test.sh,并修改其权限,chmod u+x  fancy_test.sh,内容如下

#!/bin/bash logdate=$(date +%s) logdir= /root/log/  logname=fancy.${logdate}.log #echo $logname touch ${logdir}${logname}

意思是,运行该服务时,在 /root/log/ 目录下创建一个日志文件

2. 在 /etc/systemd/system/ 下创建启动脚本 fancy_test.service,输入一下内容

[Unit] Description=fancy_test server daemon [Service] Type=simple ExecStart=/root/bin/fancy_test.sh [Install] WantedBy=multi-user.target

3. 运行命令 systemctl reload

4. 运行命令 systemctl start fancy_test.service

5. 此时你会看到在 /root/log/ 目录下创建了一个日志文件

注意,我们这个是最简单的服务,执行几个命令而已,所以没有配置文件,也不会常驻内存,运行一次就结束  

以上是“Linux 系统服务 systemctl 怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2529字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)