0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

技术分享 | Linux系统下systemctl常用命令以及service文件配置

启扬ARM嵌入式开发 2022-09-22 09:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

systemctl命令用法

1. 列出所用可用单元

systemctl list-unit-files

2. 列出所有运行中的单元

systemctl list-units

3. 检查某个单元(如 crond.service)是否启用

systemctl is-enabled crond.service

4. 列出所有服务

systemctl list-unit-files ?Ctype=service

5. Linux中如何启动、重启、停止、重载服务以及检查服务(如 httpd.service)状态

systemctl start httpd.service
systemctl restart httpd.service
systemctl stop httpd.service
systemctl reload httpd.service
systemctl status httpd.service

6. 如何激活服务并在开机时启用或禁用服务(即系统启动时自动启动mysql.service服务)

systemctl is-active mysql.service
systemctl enable mysql.service
systemctl disable mysql.service

7. 如何屏蔽(让它不能启动)或显示服务(如ntpdate.service)

systemctl mask ntpdate.service

ln -s '/dev/null' '/etc/systemd/system/ntpdate.service'

systemctl unmask ntpdate.service

rm '/etc/systemd/system/ntpdate.service'

8. 使用systemctl命令杀死服务

systemctl kill crond

编写一个服务

1. 添加服务文件

在/lib/systemd/system/文件目录下添加.service服务文件;

2. 编写.service文件

[Unit]

Description=test for service

ConditionFileIsExecutable=/etc/init.d/tst.sh

After=weston.service

[Service]

Type=forking

ExecStart=-/etc/init.d/tst.sh start

ExecStop=-/etc/init.d/tst.sh stop

[Install]

WantedBy=multi-user.target

从上面可以看出.serive文件包括三个部分:[Unit]、[Service]、[Install]。

[Unit]

Description:对当前服务的简单描述。

After:指定.serive在哪些服务之后进行启动;

Before:指定.serive在哪些服务之前进行启动;

除上述内容,文件中还可能出现以下内容:

Requires:指定服务依赖于哪些服务(强依赖关系,一旦所依赖服务异常,当前服务也随之停止);

Wants:指定服务依赖于哪些服务(弱依赖关系,所依赖服务异常不影响当前服务正常运行)。

[Service]

Type:定义启动类型。可设置:simple,exec,forking,oneshot,dbus,notify,idle。

simple:ExecStart 字段启动的进程为该服务的主进程;

forking:ExecStart 字段的命令将以 fork() 方式启动,此时父进程将会退出,子进程将成为主进程;

ExecStart:定义启动进程时执行的命令;

ExecStop:停止服务时执行的命令;

除上述内容外,文件中还可能出现:

EnvironmentFile:环境配置文件,用来指定当前服务启动的环境变量;

ExecReload:重启服务时执行的命令;

ExecStartPre:启动服务之前执行的命令;

ExecStartPost:启动服务之后执行的命令;

ExecStopPost:停止服务之后执行的命令;

RemainAfterExit:设为yes,表示进程退出以后,服务仍然保持执行;

RestartSec:重启服务之前需要等待的秒数。

KillMode:定义 Systemd 如何停止服务,可以设置的值如下:

control-group(默认值):当前控制组里面的所有子进程,都会被杀掉;

process:只杀主进程;

mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号;

none:没有进程会被杀掉。

Restart:定义了退出后,Systemd 的重启方式。

可以设置的值如下:

no(默认值):退出后不会重启;

on-success:当进程正常退出时(退出状态码为0),才会重启;

on-failure:当进程非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启;

on-abnormal:当被信号终止和超时,才会重启;

on-abort:当收到没有捕捉到的信号终止时,才会重启;

on-watchdog:看门狗超时退出,才会重启;

always:总是重启。

[Install]

Install一般填为WantedBy=multi-user.target,表示多用户环境下服务被启用。

3. 设置开机自启动

systemctl enable (服务名)

4. 查询服务状态

systemctl status (服务名)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    218009
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    shell基本介绍及常用命令之shell基本介绍

    提示符是“$”,在命令提示符后边输入命令即可和系统进行交互操作。ubuntu默认的Shell是Bash(Bourne Again Shell)。Linux
    发表于 09-28 09:05

    已收藏!你需要知道的57个常用树莓派命令

    ,下面我们将按类别介绍57个最常用命令:目录文件管理网络命令系统更新包管理系统管理树莓派操作
    的头像 发表于 07-23 18:36 821次阅读
    已收藏!你需要知道的57个<b class='flag-5'>常用</b>树莓派<b class='flag-5'>命令</b>!

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统常用命令之磁盘管理与维护常用命令

    一、df:查看系统已用空间df命令,用于显示linux系统中各文件系统的硬盘使用情况。包括文件系统
    发表于 06-24 11:26

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统常用命令系统管理与设置常用命令

    一、查看系统内核版本通过查看/proc/version文件,可获得系统内核版本信息:root@ELF1:~# cat /proc/versionLinux version
    发表于 06-23 16:12

    SSH常用命令详解

    SSH常用命令详解
    的头像 发表于 06-04 11:30 1726次阅读

    飞凌嵌入式ElfBoard ELF 1板卡-uboot常用命令文件系统命令

    uboot支持fat格式、ext格式的文件系统。我们主要讲解fat格式文件系统常用命令使用。 一、fatinfo fatinfo显示选中的mmc设备指定分区的文件系统信息, fatin
    发表于 05-26 17:32

    Linux常用命令大全

    Linux常用命令是指在Linux操作系统中广泛使用的命令工具,这些命令工具可以完成各种不同的任
    的头像 发表于 05-03 18:08 1616次阅读

    Docker Compose的常用命令

    大家好,今天给大家分享Docker Compose的常用命令以及docker-compose文件的属性。Docker Compose 是一个用于定义和运行多容器 Docker 应用应用的重要工具
    的头像 发表于 04-30 13:40 935次阅读

    Docker常用命令大全

    Docker 是一种开源的应用容器引擎,广泛应用于开发、部署和运行分布式应用。掌握 Docker 常用命令对于开发人员和运维人员来说非常重要。本文将为大家整理常用的Docker 命令,并按照功能分为多个部分,帮助你高效使用 Do
    的头像 发表于 04-22 12:47 674次阅读

    Linux常用命令行总结

    学习了一段时间的linux之后,开始着手基本命令的学习,这里主要记录一些学习过程中重要的知识点供以后查阅。
    的头像 发表于 03-03 10:40 813次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>常用命令</b>行总结

    Jtti.cc如何检查 HAProxy 是否正常运行?

    使用 systemctl 检查服务状态 在大多数现代 Linux 系统中,HAProxy 作为服务运行。可以通过以下命令检查其状态: sudo s
    的头像 发表于 02-24 17:06 657次阅读

    Linux ip命令常用操作

    Linux ip命令常用操作 在Linux系统中,ip命令是用于管理网络接口和路由的强大工具。相
    的头像 发表于 02-19 10:23 1074次阅读

    Linux实时查看日志的四种命令详解

    如何在Linux中实时查看日志文件的内容?那么有很多实用程序可以帮助用户在文件更改或不断更新时输出文件的内容。在Linux中实时显示
    的头像 发表于 01-13 10:45 3984次阅读
    <b class='flag-5'>Linux</b>实时查看日志的四种<b class='flag-5'>命令</b>详解

    嵌入式开发必备-RK3562演示Linux常用系统查询命令

    本文介绍Linux系统查看硬件配置常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试
    的头像 发表于 01-06 14:13 776次阅读
    嵌入式开发必备-RK3562演示<b class='flag-5'>Linux</b><b class='flag-5'>常用</b><b class='flag-5'>系统</b>查询<b class='flag-5'>命令</b>

    嵌入式开发必备-RK3562演示Linux常用系统查询命令

    本文继续介绍Linux系统查看硬件配置常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试。触觉智能RK3562开发板演示
    的头像 发表于 01-03 13:54 979次阅读
    嵌入式开发必备-RK3562演示<b class='flag-5'>Linux</b><b class='flag-5'>常用</b><b class='flag-5'>系统</b>查询<b class='flag-5'>命令</b>(<b class='flag-5'>下</b>)