总结先说:
systemd
替代了传统的init.d
脚本,管理服务更高效。- 可以通过
systemctl
命令执行服务的启动、停止、启用和禁用等操作。 - 旧的
init.d
脚本仍兼容,但推荐迁移到systemd
。 - 通过
man
和在线文档学习更多systemd
的高级功能。
[root@bogon init.d]# more README
You are looking for the traditional init scripts in /etc/rc.d/init.d,
and they are gone?
Here's an explanation on what's going on:
You are running a systemd-based OS where traditional init scripts have
been replaced by native systemd services files. Service files provide
very similar functionality to init scripts. To make use of service
files simply invoke "systemctl", which will output a list of all
currently running services (and other units). Use "systemctl
list-unit-files" to get a listing of all known unit files, including
stopped, disabled and masked ones. Use "systemctl start
foobar.service" and "systemctl stop foobar.service" to start or stop a
service, respectively. For further details, please refer to
systemctl(1).
Note that traditional init scripts continue to function on a systemd
system. An init script /etc/rc.d/init.d/foobar is implicitly mapped
into a service unit foobar.service during system initialization.
Thank you!
Further reading:
man:systemctl(1)
man:systemd(1)
http://0pointer.de/blog/projects/systemd-for-admins-3.html
http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities
[root@bogon init.d]#
这份 README
文件是对传统 init.d
脚本在现代 systemd
系统中被替换的说明,以下是解析和解释:
在 systemd
取代传统的 SysVinit 后,旧式的 /etc/rc.d/init.d
脚本功能由 systemd
的 unit 文件 替代。也就是说,init.d
脚本不再是服务管理的主要工具。
传统 init.d
脚本去哪里了?
"You are looking for the traditional init scripts in /etc/rc.d/init.d, and they are gone?"
在 systemd
取代传统的 SysVinit 后,旧式的 /etc/rc.d/init.d
脚本功能由 systemd
的 unit 文件 替代。也就是说,init.d
脚本不再是服务管理的主要工具。
systemd
的作用
"You are running a systemd-based OS where traditional init scripts have been replaced by native systemd services files."
systemd
是现代 Linux 系统的默认初始化系统(init system),提供以下功能:
- 更快的启动速度。
- 更高效的并行任务处理。
- 强大的日志和依赖管理。
传统的 init 脚本功能被 systemd 服务文件 替代,这些服务文件比 init 脚本更灵活和高效。
如何使用 systemd
"Service files provide very similar functionality to init scripts. To make use of service files simply invoke 'systemctl'..."
systemd
通过 systemctl
命令管理服务,可以执行以下操作:
- 列出当前运行的服务:
兼容传统 init.d
脚本
"Note that traditional init scripts continue to function on a systemd system."
虽然 systemd
主要使用服务文件,但它仍然兼容传统的 init.d
脚本:
- 位于
/etc/rc.d/init.d/
的脚本会被自动映射为foobar.service
。 - 您仍然可以通过
service
命令管理旧的init.d
脚本,例如:
这份 README
文件是对传统 init.d
脚本在现代 systemd
系统中被替换的说明,以下是解析和解释:
内容逐段解读
传统 init.d
脚本去哪里了?
"You are looking for the traditional init scripts in /etc/rc.d/init.d, and they are gone?"
在 systemd
取代传统的 SysVinit 后,旧式的 /etc/rc.d/init.d
脚本功能由 systemd
的 unit 文件 替代。也就是说,init.d
脚本不再是服务管理的主要工具。
systemd
的作用
"You are running a systemd-based OS where traditional init scripts have been replaced by native systemd services files."
systemd
是现代 Linux 系统的默认初始化系统(init system),提供以下功能:
- 更快的启动速度。
- 更高效的并行任务处理。
- 强大的日志和依赖管理。
传统的 init 脚本功能被 systemd 服务文件 替代,这些服务文件比 init 脚本更灵活和高效。
如何使用 systemd
"Service files provide very similar functionality to init scripts. To make use of service files simply invoke 'systemctl'..."
systemd
通过 systemctl
命令管理服务,可以执行以下操作:
- 列出当前运行的服务:
bash
复制代码
systemctl
- 列出所有已知服务(包括停止或禁用的服务):
bash
复制代码
systemctl list-unit-files
- 启动服务:
bash
复制代码
systemctl start foobar.service
- 停止服务:
bash
复制代码
systemctl stop foobar.service
- 启用开机启动:
bash
复制代码
systemctl enable foobar.service
- 禁用开机启动:
bash
复制代码
systemctl disable foobar.service
兼容传统 init.d
脚本
"Note that traditional init scripts continue to function on a systemd system."
虽然 systemd
主要使用服务文件,但它仍然兼容传统的 init.d
脚本:
- 位于
/etc/rc.d/init.d/
的脚本会被自动映射为foobar.service
。 - 您仍然可以通过
service
命令管理旧的init.d
脚本,例如:bash
复制代码
service foobar start
进一步阅读
man:systemctl(1)
: 查看systemctl
的手册页。man:systemd(1)
: 查看systemd
的手册页。- 在线文档:
- Systemd for Administrators
- Systemd Incompatibilities