您当前的位置: 首页 >  linux

顺其自然~

暂无认证

  • 0浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux服务管理器systemctl的基本应用

顺其自然~ 发布时间:2018-11-03 19:38:03 ,浏览量:0

systemd 是 Linux 下的一款系统和服务管理器(类似于windows服务管理器),兼容 SysV 和 LSB 的启动脚本。systemd 的特性有:支持并行化任务;同一时候采用 socket 式与 D-Bus 总线式激活服务;按需启动守护进程(daemon)。利用 Linux 的 cgroups 监视进程;支持快照和系统恢复。维护挂载点和自己主动挂载点。各服务间基于依赖关系进行精密控制。 检视和控制systemd的主要命令是systemctl。

该命令可用于查看系统状态和管理系统及服务。

分析系统状态

显示 系统状态:

$ systemctl status

输出激活的单元(单元就是服务的名称,如apache服务是httpd):

$ systemctl

下面命令等效:

$ systemctl list-units

输出执行失败的单元:

$ systemctl --failed

全部可用的单元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 文件夹(后者优先级更高)。

查看全部已安装服务:

$ systemctl list-unit-files
使用单元

一个单元配置文件能够描写叙述例如以下内容之中的一个:系统服务(.service)、挂载点(.mount)、sockets(.sockets) 、系统设备(.device)、交换分区(.swap)、文件路径(.path)、启动目标(.target)、由 systemd 管理的计时器(.timer)。

详情參阅 man 5 systemd.unit。  使用 systemctl 控制单元时,通常须要使用单元文件的全名,包括扩展名(比如 sshd.service)。可是有些单元能够在systemctl中使用简写方式。

  • 假设无扩展名,systemctl 默认把扩展名当作 .service。

    比如 netcfg 和 netcfg.service 是等价的。

    挂载点会自己主动转化为对应的 .mount 单元。比如 /home 等价于 home.mount。

  • 设备会自己主动转化为对应的 .device 单元,所以 /dev/sda2 等价于 dev-sda2.device。

Note: 有一些单元的名称包括一个 @ 标记。 (e.g. name@string.service): 这意味着它是模板单元 name@.service 的一个 实例。 string 被称作实例标识符, 在 systemctl 调用模板单元时,会将其当作一个參数传给模板单元。模板单元会使用这个传入的參数取代模板中的 %I 指示符。  在实例化之前。systemd 会先检查 name@string.suffix 文件是否存在(假设存在,应该就是直接使用这个文件。而不是模板实例化了)。

大多数情况下,包换 @ 标记都意味着这个文件是模板。假设一个模板单元没有实例化就调用,该调用会返回失败,由于模板单元中的 %I 指示符没有被替换。

Tip:  下面的大部分命令都能够跟多个单元名, 具体信息參见 man systemctl。  从systemd 220版本号開始, systemctl命令在enable、disable和mask子命令中添加了–now选项,能够实现激活的同一时候启动服务。取消激活的同一时候停止服务。

一个软件包可能会提供多个不同的单元。假设你已经安装了软件包,能够通过pacman -Qql package | grep systemd命令检查这个软件包提供了哪些单元。

马上激活单元:

# systemctl start 

马上停止单元:

# systemctl stop 

重新启动单元:

# systemctl restart 

又一次载入配置:

# systemctl reload 

输出单元执行状态:

$ systemctl status 

检查单元是否配置为自己主动启动:

$ systemctl is-enabled 

开机自己主动激活单元:

# systemctl enable 

取消开机自己主动激活单元:

# systemctl disable 

禁用一个单元(禁用后,间接启动也是不可能的):

# systemctl mask 

取消禁用一个单元:

# systemctl unmask 

显示单元的手冊页(必须由单元文件提供):

# systemctl help 

又一次载入 systemd,扫描新的或有变动的单元:

# systemctl daemon-reload
关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.1286s