当前位置:   article > 正文

Linux---systemctl_linux systemctl

linux systemctl

1. systemctl命令

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启。

能够被systemctl管理的软件,一般也称之为:服务

语法:systemctl start | stop | status | enable | disable 服务名

start 启动;stop 关闭;status 查看状态;enable 开启开机自启;disable 关闭开机自启

系统内置的服务比较多,比如:

NetworkManager,主网络服务

network,副网络服务

firewalld,防火墙服务

sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)

除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制:

yum install -y ntp,安装ntp软件

可以通过ntpd服务名,配合systemctl进行控制

yum install -y httpd,安装apache服务器软件

可以通过httpd服务名,配合systemctl进行控制

2. systemd

Systemd 中 d 是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是守护整个系统。

Systemd 并不是一个命令,而是一组命令,systemctl 是 Systemd 的主命令,用于管理系统。

systemd-analyze命令用于查看启动耗时。

hostnamectl命令用于查看当前主机的信息。

localectl命令用于查看本地化设置。

timedatectl命令用于查看当前时区设置。

loginctl命令用于查看当前登录的用户。

部分软件安装后没有自动集成到systemctl中,需要手动添加。

要将安装好的软件集成到systemctl中,需要遵循以下步骤:

  1. 创建一个 systemd 服务配置文件:在 /etc/systemd/system/ 目录下创建一个自定义的服务配置文件,例如 my-service.service 。

  2. 编辑服务配置文件:编辑刚才创建的服务配置文件,配置服务的运行参数。一个简单的服务配置文件示例如下:

    1. vim /etc/systemd/system/my-service.service
    2. [Unit]
    3. Description=My Service
    4. After=network.target
    5. [Service]
    6. Type=simple
    7. WorkingDirectory=/path/to/my/service
    8. ExecStart=/path/to/my/service/my-service-command
    9. Restart=always
    10. [Install]
    11. WantedBy=multi-user.target

    在上面的示例配置文件中,为服务定义了一个简单的描述,指定了它的启动类型就是simple(比如启动一个脚本、运行一个命令、调用一个二进制文件),指定了它的工作目录,指定了它的启动命令,并指定了它启动失败时应该执行的操作。

  3. 重新加载systemctl配置文件:执行命令systemctl daemonj-reload重新加载systemctl配置文件,使得新创建的服务配置文件生效。

  4. 启动服务:执行命令systemctl start my-service启动服务。

  5. 验证服务:执行命令systemctl status my-service查看服务的状态以及是否已经在系统中注册成功。

  6. 设置开机自启动:执行命令systemctl enable my-service设置开机自启动。

这些步骤完成之后,服务就已经在systemctl中完成了注册,并且能够在系统启动时自动启动。

其中项的含义:

  1. - Unit
  2. - Description,服务的描述
  3. - Documentation,文档介绍
  4. - After,该服务要在什么服务启动之后启动,比如Mysql需要在network和syslog启动之后再启动
  5. - Install
  6. - WantedBy,值是一个或多个Target,当前Unit激活时(enable)符号链接会放入/etc/systemd/system目录下面以Target名+.wants后缀构成的子目录中
  7. - RequiredBy,它的值是一个或多个Target,当前Unit激活(enable)时,符号链接会放入/etc/systemd/system目录下面以Target名+.required后缀构成的子目录中
  8. - Alias,当前Unit可用于启动的别名
  9. - Also,当前Unit激活(enable)时,会被同时激活的其他Unit
  10. - Service
  11. - Type,定义启动时的进程行为。它有以下几种值。
  12. - Type=simple,默认值,执行ExecStart指定的命令,启动主进程
  13. - Type=forking,以 fork 方式从父进程创建子进程,创建后父进程会立即退出
  14. - Type=oneshot,一次性进程,Systemd 会等当前服务退出,再继续往下执行
  15. - Type=dbus,当前服务通过D-Bus启动
  16. - Type=notify,当前服务启动完毕,会通知Systemd,再继续往下执行
  17. - Type=idle,若有其他任务执行完毕,当前服务才会运行
  18. - ExecStart,启动当前服务的命令
  19. - ExecStartPre,启动当前服务之前执行的命令
  20. - ExecStartPost,启动当前服务之后执行的命令
  21. - ExecReload,重启当前服务时执行的命令
  22. - ExecStop,停止当前服务时执行的命令
  23. - ExecStopPost,停止当其服务之后执行的命令
  24. - RestartSec,自动重启当前服务间隔的秒数
  25. - Restart,定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
  26. - TimeoutSec,定义 Systemd 停止当前服务之前等待的秒数
  27. - Environment,指定环境变量

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/155473
推荐阅读
相关标签
  

闽ICP备14008679号