浅谈linux6:以systemd为例,初探系统服务管理
假如你用的不是很老版本的unix系统,那么你一定对systemd不甚陌生。
查看服务:systemctl status servicename
停止服务:systemctl stop servicename
这些常见操作,基本大家都有涉及。
那么,systemd到底是何方神圣呢?为什么它可以管理那么多的系统服务?它本身也是个服务么?需要安装么?为什么在开篇要提到版本差异?
systemd是linux下的一款init软件,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低shell的系统开销的效果,最终垫底现在常用的system V与BSO风格的init程序。
这段话当然是我从百度百科抄下来的啦……
然后接着……什么是init软件?
init是linux不可或缺的一个程序,由内核启动,用来对服务和应用程序进行初始化。
所以,现在,很多问题就迎刃而解了。
内核启动systemd,systemd用来管理服务和应用。
当然也有更低版本的init程序,比如sysvinit。
附上小小的对比图:
一些常用命令:
systemctl list-units ##列出当前系统服务的状态
systemctl list-unit-files ##列出服务的开机状态
systemctl status sshd ##查看指定服务的状态
systemctl stop sshd ##关闭指定服务
systemctl start sshd ##开启指定服务
systemctl restart sshd ##从新启动服务
systemctl enable sshd ##设定指定服务开机开启
systemctl disable sshd ##设定指定服务开机关闭
systemctl reload sshd ##使指定服务从新加载配置
systemctl list-dependencies sshd ##查看指定服务的倚赖关系
systemctl mask sshd ##冻结指定服务
systemctl unmask sshd ##启用服务
systemctl set-default multi-user.target ##开机不开启图形
systemctl set-default graphical.target ##开机启动图形
服务状态:
systemctl status 服务名称
loaded ##系统服务已经初始化完成,加载过配置
active(running) ##正有一个或多个程序正在系统中执行,
# vsftpd 就是这种模式
atcive(exited) ##仅执行一次就正常結束的服务,
# 目前并没有任何程序在系統中执行
atcive(waiting) ##正在执行当中,
# 不过还再等待其他的事件才能继续处理
inactive ##服务关闭
enbaled ##服务开机启动
disabled ##服务开机不自启
static ##服务开机启动项不可被管理
failed ##系统配置错误