fedora23和centos7+ 都是使用的 systemd 来代替sysv 管理系统启动和服务了. 在systemd 中主要包含两个方面的内容,
一个是系统服务service, 像很多的 系统服务包括httpd.service等都是放在 systemd/system下的;
另一个就是 系统的启动管理.包括原来的 /etc/inittab, runlevels 等 都是由 systemd/system/下的target 来管理的了.
arget 被设计成层级结构,逐级包含和require. 比如: multi-user.target就类似于原来的 runlevel3 它包含 basic.target. 而graphical.target就类似于(analogous to)原来的runlevel5. 它又包含 multi-user.target.每个target都有对应的需求启动项,包含在对应的 *.target.wants(wants 就是对应的目标所需要的内容...)
在每个target中, 的内容是: 规定了前提条件: requisite, 先于当前target 启动的服务Before=...,当前服务启动后, 然后还要启动的服务 After=...
[[email protected] system]$ ls *.wants ## 查看各个目标需要的wants, 每个wants下列出了需要的哪些服务. systemd就是这样来管理系统启动的
anaconda.target.wants:
anaconda-nm-config.service [email protected]
# basic.target.wants:
alsa-restore.service alsa-state.service fedora-autorelabel-mark.service fedora-autorelabel.service fedora-loadmodules.service
busnames.target.wants:
org.freedesktop.hostname1.busname org.freedesktop.login1.busname org.freedesktop.resolve1.busname
org.freedesktop.import1.busname org.freedesktop.machine1.busname org.freedesktop.systemd1.busname
org.freedesktop.locale1.busname org.freedesktop.network1.busname org.freedesktop.timedate1.busname
dbus.target.wants:
default.target.wants:
# graphic.target包含(requires multi-user.target, multi-user.target又requires basic.target)
graphical.target.wants:
systemd-update-utmp-runlevel.service
# multi-user.target需要的wants.
multi-user.target.wants:
dbus.service plymouth-quit.service systemd-ask-password-wall.path systemd-update-utmp-runlevel.service
getty.target plymouth-quit-wait.service systemd-logind.service systemd-user-sessions.service
在 markdown中, 如果有多个回车换行, 至少是可以认识一个 换行的, 即可以显示 一个空行的, 但是多个空行(回车换行)无效
在 显示/过滤 符合 条件的 多个目录时, 可以使用 -d (--directory) 选项,将只显示 目录本身, 而不显示内容. 这个将很有用. show directroies themselves not their contents.
在 /usr/lib/systemd/system下, default.target 是一个指向 默认启动的target的 软链接. 这个就是供 systemd的管理工具 systemctl 来获得默认启动 级别的 get-default.
在bash中, 要将多行字符串 重定向输出到 文件中, 使用下面的格式
[[email protected] ~]$ cat > 重定向文件名.txt <<eof
> [daemon]
> autologinEnabled = true
> autologinUser = liveuser
> eof (如果是在脚本中, 就没有前面的大于符号)
但是在 /usr/lib/systemd/system 下的 basic.target.wants, multi-user.target.wants, graphical.target.wans中都没有发现syslog, 它们里面只有一些 需要的service服务. 而且在 /etc/rc.d中也没用 什么 S20syslog 文件?
在 /usr/include/中是一些linux系统要使用的 头文件. 其中一些 数据结构本身的 定义 放在 /usr/include/bits 目录中, 而 操作这些数据结构的同名文件 放在 /usr/include中, 比如: 存储当前登录用户信息的文件 有: /var/log/btmp 和 存储以往登录过的用户的信息文件 /var/log/wtmp (这两个文件是数据库文件, 非ascii文件,不可读) . 这两个文件使用的 基本的数据结构就是 一个结构体 struct utmp() .