1. 为什么centos7的service命令无法启动服务
CentOS 7.0中一个最主要的改变,就是切换到了systemd。它用于替代红帽企业版linux前任版本中的SysV和Upstart,对系统和服务进行管理。systemd兼容SysV和Linux标准组的启动脚本。
Systemd是一个Linux操作系统下的系统和服务管理器。它被设计成向后兼容SysV启动脚本,并提供了大量的特性,如开机时平行启动系统服务,按需启动守护进程,支持系统状态快照,或者基于依赖的服务控制逻辑。
先前的使用SysV初始化或Upstart的红帽企业版Linux版本中,使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。而在RHEL 7/CentOS 7中,这些启动脚本被服务单元取代了。服务单元以.service文件扩展结束,提供了与初始化脚本同样的用途。要查看、启动、停止、重启、启用或者禁用系统服务,你要使用systemctl来代替旧的service命令。
注:为了向后兼容,旧的service命令在CentOS 7中仍然可用,它会重定向所有命令到新的systemctl工具。
使用systemctl来启动/停止/重启服务
要启动一个服务,你需要使用如下命令:
# systemctl start httpd.service
这会启动httpd服务,就我们而言,Apache HTTP服务器。
要停掉它,需要以root身份使用该命令:
# systemctl stop httpd.service
要重启,你可以使用restart选项,如果服务在运行中,它将重启服务;如果服务不在运行中,它将会启动。你也可以使用try-start选项,它只会在服务已经在运行中的时候重启服务。同时,reload选项你也可以有,它会重新加载配置文件。
# systemctl restart httpd.service
# systemctl try-restart httpd.service
# systemctl reload httpd.service
我们例子中的命令看起来会像下面这样:
检查服务状态
要检查服务状态,你可以使用status选项,看这里:
# systemctl status httpd.service
输出结果就像这样:
它会告诉你运行中的服务的方方面面。
使用启用/禁用服务来控制开机启动
你也可以使用enable/disable选项来控制一个服务是否开机启动,命令如下:
# systemctl enable httpd.service
# systemctl disable httpd.service
2. centos7 kmp.service启动失败的解决方法
加入到开机启动,可以使用下面命令来加到开机启动列表,
systemctl enable xxx.service
通过下面命令可以查看有哪些是开机启动的服务,如果太多一屏显示不完,还会一部分一部分显示。
systemctl list-units --type=service
结果这时发现 kmp.service 是红色的,后面注释faild,不过没有说明原因。经网络的帮助找到了如下方法,实测有效,特此记录。
1、编辑 /etc/default/grub 文件修改 crashkernel 后面的auto 为 128M,128M可以改成别的数,以64M为步进数,比如64M,192M等。
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=128M rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
2、生成新的 grub.cfg
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
关于grub.cfg路径:对于bios+mbr磁盘是/boot/grub2/grub.cfg,对于efi启动的grub.cfg路径应该和系统类型有关,具体路径不再详细列出。
例如,fedora系统 efi grub.cfg的链接路径是/etc/grub2-efi.cfg,链接到真实路径是 /boot/efi/EFI/fedora/grub.cfg。
centos系统efi grub.cfg的链接路径是/etc/grub2-efi.cfg,链接到真实路径是 /boot/efi/EFI/centos/grub.cfg。
3、重启,才能生效,当然,也可以看到效果
reboot
启动完成后,使用命令 systemctl list-units --type=service 来查看情况,结果正常启动了,到此解决完成。
3. Centos7 ssh服务重启出错
IP配置正确 selinux 和firewalld都关闭的前提下
SSH 服务时出现如下错误:status=255 ,Bad configuration options
tail /var/log/messages
发现sshd_config line 117行出现配置报错
先 vi /etc/ssh/sshd_config
在 ESC :117 回车
找到出错行注释掉
systemctl restart sshd
systemctl status sshd
服务恢复正常