常驻系统内存中的进程且可以提供一些系统和网络功能;现在最新的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,文件内容如下

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

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

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

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

  1. 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,内容如下

  1. #!/bin/bash
  2. logdate=$(date +%s)
  3. logdir="/root/log/"
  4. logname=fancy.${logdate}.log
  5. #echo $logname
  6. touch ${logdir}${logname}

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

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

  1. [Unit]
  2. Description=fancy_test server daemon
  3. [Service]
  4. Type=simple
  5. ExecStart=/root/bin/fancy_test.sh
  6. [Install]
  7. WantedBy=multi-user.target

3.运行命令 systemctl reload

4.运行命令 systemctl start fancy_test.service

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

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

Linux系统服务(systemctl)的使用相关推荐

  1. Linux 系统服务管理(启动服务/停止服务/重启服务)的命令 - chkconfig/service/systemctl

    文章目录 一.使用命令 chkconfig 管理系统服务 (一)命令介绍 二.使用命令 service 管理系统服务 (一)命令介绍 (二)命令用法 1.启动服务 2.停止服务 3.重启服务 4.查看 ...

  2. 查看运行状态_查看 Linux 系统服务的 5 大方法

    Linux 系统服务有时也称为守护程序,是在Linux启动时自动加载并在Linux退出时自动停止的系统任务. 在本文中,良许将为大家介绍如何列出 Linux 系统里所有运行的服务,以及如何检查某个服务 ...

  3. Linux使用systemctl设置程序开机自启动

    1 说明 设置开机自启动,需要用到systemctl工具. systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器. systemd是一个系统管理守护进程.工具和库的集 ...

  4. linux之systemctl命令

    Linux 服务管理两种方式service和systemctl,systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动.sy ...

  5. zabbix监控Linux系统服务

    转载来源 :zabbix监控Linux系统服务: http://www.lwops.cn/thread-256-1-2.html Zabbix自动发现规则监控Linux系统的service units ...

  6. linux启动zabbix服务,zabbix监控Linux系统服务的流程

    Zabbix自动发现规则监控Linux系统的service units 项目要求:通过systemctl命令查看Linux系统的service units: 监控前提:zabbix环境已搭建好: 监控 ...

  7. linux 如何注册服务,Linux 系统服务注册

    Linux注册系统服务步骤 1.编写服务脚本 2.拷贝到/etc/init.d目录下 3.为服务脚本添加可执行权限   >>chmod a+x xxxd 4.添加到系统服务中        ...

  8. Linux系列教程——1 Linux磁盘管理、2 Linux进程管理、3 Linux系统服务、 4 Linux计划任务

    文章目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...

  9. 5 种方法带你查看Linux系统服务

    文章目录 5 种方法带你查看Linux系统服务 Centos/RHEL 7.X 的 systemd 系统服务查看 使用 netstat 命令查看系统服务 通过系统服务配置文件查看系统服务 查看 sys ...

最新文章

  1. c++中new和delete的使用方法
  2. 服务器运行jupyter notebook,解决办法
  3. 538. 把二叉搜索树转换为累加树
  4. 判断文件是否存在如果不存在则创建
  5. Redis服务安全加固
  6. Windows Server 2016安装IIS服务步骤
  7. Windows Server 2008 RC1标准版
  8. 爱奇艺多模态短视频内容标签技术及应用
  9. Java 拾遗补阙 ----- 数据类型
  10. NeurIPS 2021 放榜!旷视研究院5篇接收论文亮点解读!
  11. 服务器无线网络禁用启用无效,无线网络卡一直被禁用,无法启用
  12. 基于Pandas的股票数据分析
  13. 安装DevExpress后如何在工具箱显示Dev控件
  14. 关于Ajax的英雄联盟查询英雄案例
  15. ByteBuffer Converting CharBuffer
  16. CAPP集成化工艺设计与管理系统
  17. jenkins网页打不开问题解决方法
  18. 数据湖08:Apache Iceberg原理和功能介绍
  19. 《人工智能怎么学》精华连载预告
  20. 100以内的阶乘计算方法

热门文章

  1. ubuntu18.04 更改apt源
  2. php连mssql 中文乱码,PHP连接MSSQL显示中文时为乱码_PHP教程
  3. Request转发---应用
  4. 幼儿园计算机知识培训内容,幼儿园教师计算机培训计划
  5. python怎么从键盘输入两个数然后求和并输出_C语音的题:从键盘输入两个整数,要求求和然后输出和。应该怎么做?...
  6. 数字货币交易所源码_(数字货币交易所科普)开发数字货币交易所应该注意哪些问题...
  7. python的for语句是否只有一种写法_跟老齐学Python之for循环语句
  8. oracle asm 日志,Oracle+RAC+ASM数据库ora-00257日志归档器错误解决方法
  9. android崩溃无日志,Android 收集Crash日志----UncaughtExceptionHandler
  10. vb6 串口同时读取写入数据怎么避免冲突_实例:S7-200 SMART通过Modbus-RTU读取温湿度传感器数据...