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
    +关注

    关注

    87

    文章

    10986

    浏览量

    206710
收藏 人收藏

    评论

    相关推荐

    Jlink.exe(Jlink commander)的常用命令

    前面有给大家分享过如何通过Jlink查看GD32芯片跑飞后程序死在哪里?里面用到了Jlink.exe(Jlink commander),今天再来介绍下这个工具下的几个常用命令
    的头像 发表于 02-27 09:31 1330次阅读
    Jlink.exe(Jlink commander)的<b class='flag-5'>常用命令</b>

    linux常用命令有哪些

    1.系统常用命令 1、 目录信息查看命令 ls 参数如下: -a 显示所有的文件以及子目录,包括以“ .”开头的隐藏
    的头像 发表于 02-04 15:06 174次阅读

    Linux常用命令自学手册》工具书永远是常备的秘籍

    Linux命令,涵盖了系统管理、文件操作、网络配置等多个方面。这些命令都是
    发表于 01-29 19:42

    Linux常用命令自学手册》+一本手边linux速查字典

    ,即使不能一时都记住,本书也可以作为办公桌边随时查阅的工具书。 我手头有一本也是《linux命令速查手册》,16K的很厚一本,和本书对比了一,有以下不同。 1、《Linux
    发表于 12-26 08:46

    Linux常用命令自学手册》+入门Linux命令,就看这本书保你成高手

    的也就那一二百条。这本手册浓缩了。200多条常用命令,每天练习一个,能很快的掌握常用命令。真是学习Linux系统的好帮手。 按作者的介绍,
    发表于 12-23 21:46

    FTP常用命令的使用方法

    FTP常用命令的使用方法 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的常用协议。通过FTP,用户可以从一个主机上下载文件到本地,或将本地
    的头像 发表于 12-15 11:28 673次阅读

    Linux常用命令自学手册》+试读报告

    之作。 个人收获 《Linux常用命令自学手册》是一本非常实用的书籍,它详细介绍了Linux系统中的常用命令及其用法。通过阅读这本书,我不仅
    发表于 12-14 16:59

    华为设备常用命令汇总

    华为设备常用命令如下: display current-configuration:显示当前配置。 display interface:显示接口信息。 display packet-filter interface:显示接口acl应用信息。
    的头像 发表于 12-08 10:50 708次阅读

    linux常用命令

    的发行版 在Linux的内核改进:CentOSE,Redhat,Suse,Ubuntu,红旗Linux Part2 Linux文件系统目录 2.1
    的头像 发表于 11-24 16:04 242次阅读
    <b class='flag-5'>linux</b>的<b class='flag-5'>常用命令</b>

    linux常用命令及用法

    Linux是一种开源的操作系统,它以稳定、高效和安全的特点受到广大用户的喜爱。掌握Linux常用命令及其用法对于操作系统的管理和开发都至关
    的头像 发表于 11-17 09:47 349次阅读

    linux常用命令及作用

    Linux系统中,有许多常用命令,它们可以用于管理文件、目录、进程等。以下是一些常用
    的头像 发表于 11-13 16:45 382次阅读

    shell编程常用命令

    在Shell编程中,常用命令包括以下几种: ls :列出目录中的文件和子目录。 cp :复制文件或目录。 cat :查看文件的内容,可以用于合并文件
    的头像 发表于 11-08 10:43 522次阅读

    【书籍评测活动NO.24】快速自学Linux常用命令,选这本工具书就对了!

    评测,如在5个工作日内未联系,视为放弃本次试用评测资格! 快速自学Linux常用命令,选这本工具书就对了! 适用于RedHat、CentOS、Ubuntu等主流的Linux发行版 内容介绍 本书
    发表于 11-03 14:19

    Linux常用命令总结

    不少Linux运维初级同学,一到面试环节,就会在基础上掉链子,比如一些简单的命令都会不知道,今天浩道跟大家分享这篇硬核干货,可以帮助大家几分钟回顾掌握Linux常用命令!!!
    发表于 09-04 17:14 327次阅读

    Linux常用命令手册分享

    linux常用命令合集
    发表于 04-26 11:46 1次下载