系统保持安全运行是非常重要的,仔细的管理好系统服务的准入对此是很有帮助的。系统需要对一些特殊程序提供准入(比如WEB服务器的HTTPD服务)。然而,如果你不需要此类服务,那么你应该关闭它,以让你的系统可能暴露的BUG最小化。本章讲的是系统运行时的服务的相关配置,以及如何使用systemctl工具从命令行重启服务。保持系统安全:当你启用一项新的服务时,记得防火墙和selinux也需要一同配置。配置一项新服务时最容易犯的错误就是没有修改防火墙和selinux配置,以允许其启用。7.1 配置服务FEDORA使用systemctl工具配置系统启动时自动启用的服务。不要使用ntsysv和chkconfig工具:尽管仍然可以使用ntsysv和chkconfig工具管理服务(通过安装到/etc/rc.d/init.d/目录里的脚本),但仍建议你使用systemctl工具来管理服务。启用irqbalance服务:建议启用irqbalance服务。大多数情况下,这个服务已在FEDORA23上自动安装和配置,验证运行状态使用如下命令:systemctl status irqbalance.service7.1.1 启用服务系统启动时自动启用服务的配置方法:systemctl enable service_name.service下次系统启动时将自动启动该服务。例子7.1 启用HTTPD服务假设你正在运行apache http服务器,httpd包已经安装,你可以让系统启动时自动启动此服务:~]# systemctl enable httpd.service7.1.2 停用服务关闭某项服务随系统自动启动的命令如下:systemctl disable service_name.service下次系统启动时,该服务将不会启动。例子7.2 停用telnet服务为了例系统更安全,建议用户关闭不安全的连接协议,比如telnet。关闭该服务的命令如下:~]# systemctl disable telnet.service7.2 运行服务Systemctl允许你启动、停止或重启服务。不要使用service工具:尽管你可以使用service命令管理服务(基于/etc/rc.d/init.d/目录下的脚本),但建议使用systemctl工具来管理。7.2.1 检查服务的状态下面的命令检查服务的运行状态:systemctl status service_name.service这个命令会显示服务状态的详细信息。如果你只是想验证服务是否正在运行,你可以使用下面的systemctl命令:systemctl is-active service_name.service例子7.3 检查httpd服务状态“例子7.1 启用httpd服务”指出了如何在系统启动时自动启用httpd服务。假设系统已经重启,你现在想验证一下httpd是否在运行:~]$ systemctl is-active httpd.serviceActive你可以查看详细状态:~]$ systemctl status httpd.servicehttpd.service - LSB: start and stop Apache HTTP ServerLoaded: loaded (/etc/rc.d/init.d/httpd)Active: active (running) since Mon, 23 May 2011 21:38:57 +0200; 27s agoProcess: 2997 ExecStart=/etc/rc.d/init.d/httpd start (code=exited, status=0/SUCCESS)Main PID: 3002 (httpd)CGroup: name=systemd:/system/httpd.service├ 3002 /usr/sbin/httpd├ 3004 /usr/sbin/httpd├ 3005 /usr/sbin/httpd├ 3006 /usr/sbin/httpd├ 3007 /usr/sbin/httpd├ 3008 /usr/sbin/httpd├ 3009 /usr/sbin/httpd├ 3010 /usr/sbin/httpd└ 3011 /usr/sbin/httpd显示所有正在运行的服务,可以使用如下命令:systemctl list-units --type=service这个命令提供的信息中:Unit-systemd unit的名字,这个例子中显示的是服务的名字Load-显示是否正确装载Active-高级unit激活状态Sub-低级unit激活状态Job-unit所占用的任务Description-unit的简介例子7.4 显示所有激活的服务~]$ systemctl list-units --type=serviceUNIT LOAD ACTIVE SUB JOB DESCRIPTIONabrt-ccpp.service loaded active exited LSB: Installs coredump handler whichsaves segfault dataabrt-oops.service loaded active running LSB: Watches system log for oopsmessages, creates ABRT dump directories for each oopsabrtd.service loaded active running ABRT Automated Bug Reporting Toolaccounts-daemon.service loaded active running Accounts Serviceatd.service loaded active running Job spooling tools[output truncated]这个例子中显示,abrtd服务已经装载,激活,且正在运行,没有对应的任务。7.2.2 运行服务systemctl start service_name.service这个命令将立即启动对应的服务。例子7.5 启动httpd服务~]# systemctl start httpd.service7.2.3 关闭服务systemctl stop service_name.service例子7.6 关闭telnet服务~]# systemctl stop telnet.service7.2.4 重启服务systemctl restart service_name.service例子7.7 重启sshd服务让/etc/ssh/sshd_config的配置生效,需要重启sshd服务:~]# systemctl restart sshd.service7.3 其它信息
第7章 后台服务程序
最新推荐文章于 2023-02-02 14:55:10 发布