1.service命令
service命令其实是去/etc/init.d目录下,去执行相关程序
# service命令启动redis脚本 service redis start # 直接启动redis脚本 /etc/init.d/redis start # 开机自启动 update-rc.d redis defaults
其中脚本需要我们自己编写
2.systemctl命令
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
systemd对应的进程管理命令是systemctl
1)systemctl命令兼容了service
即systemctl也会去/etc/init.d目录下,查看,执行相关程序
systemctl redis start
systemctl redis stop
# 开机自启动
systemctl enable redis
2 Systemd的Unit文件
在 Systemd 的生态圈中(除了 CoreOS 外,目前的主流 Linux 系统,如 Arch、SUSE、Fedora、RedHat/CentOS 也都已经使用了 Systemd,此外 Ubuntu 也将最快于15.04版本启用 Systemd 作为默认的系统管理工具),Unit 文件统一了过去各种不同的系统资源配置格式,例如服务的启/停、定时任务、设备自动挂载、网络配置、设备配置、虚拟内存配置等。而 Systemd 通过不同的通过文件的后缀名来区分这些配置文件,之前我们写的 .service 文件便是其中的一种。下面是 Systemd 所支持的12种 Unit 文件类型。
这些琳琅满目的种类,几乎囊括了系统管理的大部分的日常工作内容,一致的配置格式和操作方法使得即便普通的 Linux 系统使用者和软件开发者也能够很快的上手修改系统的配置,妈妈再也不用担心我们把系统弄挂了。其实这些配置文件类型中,真正经常需要修改的并不多,并且这篇文章只打算对其中最常用的,也是之前一直在写的 .service 类型展开说明。
需要再次强调的是,Unit 文件按照 Systemd 约定,应该被放置在指定的3个系统目录之一。这3个目录是有优先级的,依照下面表格,越靠上的优先级越高,因此在几个目录中有同名文件的时候,只有优先级最高的目录里的那个会被使用。
由于这里的最后一个目录在 CoreOS 中是属于系统的只读分区,因此在 CoreOS 中,第三方软件如果安装时可能需要特别处理,将配置的 Unit 文件放到 /run/systemd/system目录中。索性 CoreOS 本来也不推荐直接在系统上安装软件,人家特意把系统分区做成只读这个意思就已经很明确了。一些确实需要安装在 CoreOS 上的软件比如 Deis,它的 .service 服务配置都是放到 /run/systemd/system目录里面的。