.
如果某个服务启动是管理员自己手动执行启动,而不是使用
systemctl
去启动的
(
例如你自己手动输入
crond
以启动
crond
服务
)
,那么
systemd
½无法侦测到该服务,而无法½一步管理。
.
systemd
启动过程中,无法与管理员透过
standard input
传入讯息!因此,自行撰写
systemd
的启动设定时,
务必要取消互动机制~
(
连透过启动时传½的标准输入讯息也要避免!
)
不过,光是同步启动服务½本这个功能就可以½省你很多开机的时间~同时
systemd
还有很多特殊
的服务类型
(type)
可以提供更多有趣的功能!确实值得学一学~
而且
CentOS 7
已经用了
systemd
了!想不学也不行啊~哈哈哈!好~既然要学,首先就得要针对
systemd
管理的
unit
来了½一下。
.
systemd
的配置文件放置目录
基本上,
systemd
½过去所谓的
daemon
执行½本通通称为一个服务单位
(unit)
,而每种服务单位
依据功能来区分时,就分类为不同的类型
(type)
基本的类型有包括系统服务、数据监听与½换的
插槽档服务
(socket)
、储存系统状态的快照类型、提供不同类似执行等级分类的操作环境
(target)
等。
哇!这么多类型,那设定时会不会很麻烦呢?其实还好,因为配置文件都放置在底下的目录中:
.
/usr/lib/systemd/system/
:每个服务最主要的启动½本设定,有点类似以前的
/etc/init.d
底下的文件;
.
/run/systemd/system/
:系统执行过程中所产生的服务½本,这些½本的优先序要比
/usr/lib/systemd/system/
高!
.
/etc/systemd/system/
:管理员依据主机系统的需求所½立的执行½本,其实这个目录有点像以前
/etc/rc.d/rc5.d/Sxx
之类的功能!执行优先序又比
/run/systemd/system/
高喔!
也就是说,到底系统开机会不会执行某些服务其实是看
/etc/systemd/system/
底下的设定,所以该目
录底下就是一大堆连½档。而实际执行的
systemd
启动½本配置文件,
其实都是放置在
/usr/lib/systemd/system/
底下的喔!因此如果你想要修改某个服务启动的设定,应该要去
/usr/lib/systemd/system/
底下修改才对!
/etc/systemd/system/
½是连½到正确的执行½本配置文件而
已。所以想要看执行½本设定,应该就得要到
/usr/lib/systemd/system/
底下去查阅才对!
.
systemd
unit
类型分类说明
/usr/lib/systemd/system/
以下的数据如何区分上述所谓的不同的类型
(type)
呢?很简单!看扩展
名!举例来说,我们来瞧瞧上一章谈到的
vsftpd
这个范例的启动½本设定,
还有
crond
与纯文本
模式的
multi-user
设定:
[root@study ~]#
ll /usr/lib/systemd/system/ | grep
-
E '(vsftpd|multi|cron)'
-
rw
-
r
--
r
--
. 1 root root 284 7
30 2014 crond.service
-
rw
-
r
--
r
--
. 1 root root 567 3
6 06:51 multipathd.service
-
rw
-
r
--
r
--
. 1 root root 524 3
6 13:48 multi
-
user.target
drwxr
-
xr
-
x. 2 root
root 4096 5
4 17:52 multi
-
user.target.wants
lrwxrwxrwx. 1 root root 17 5
4 17:52 runlevel2.target
-
> multi
-
user.target
lrwxrwxrwx. 1 root root 17 5
4 17:52 runlevel3.target
-
> multi
-
user.target
lrwxrwxrwx. 1 root root 17 5
4 17:52 runlev
el4.target
-
> multi
-
user.target
-
rw
-
r
--
r
--
. 1 root root 171 6
10 2014 vsftpd.service
-
rw
-
r
--
r
--
. 1 root root 184 6
10 2014 vsftpd@.service
-
rw
-
r
--
r
--
. 1 root root 89 6
10 2014 vsftpd.target
#
½
重要的是上
提供的那三行特殊字体的部份!