第7章 后台服务程序

来源:互联网 发布:ne80e端口物理层down 编辑:程序博客网 时间:2024/05/16 07:53
系统保持安全运行是非常重要的,仔细的管理好系统服务的准入对此是很有帮助的。系统需要对一些特殊程序提供准入(比如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.service
7.1.1 启用服务
系统启动时自动启用服务的配置方法:
systemctl enable service_name.service
下次系统启动时将自动启动该服务。
例子7.1 启用HTTPD服务
假设你正在运行apache http服务器,httpd包已经安装,你可以让系统启动时自动启动此服务:
~]# systemctl enable httpd.service
7.1.2 停用服务
关闭某项服务随系统自动启动的命令如下:
systemctl disable service_name.service
下次系统启动时,该服务将不会启动。
例子7.2 停用telnet服务
为了例系统更安全,建议用户关闭不安全的连接协议,比如telnet。关闭该服务的命令如下:
~]# systemctl disable telnet.service
7.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.service
Active
你可以查看详细状态:
~]$ systemctl status httpd.service
httpd.service - LSB: start and stop Apache HTTP Server
Loaded: loaded (/etc/rc.d/init.d/httpd)
Active: active (running) since Mon, 23 May 2011 21:38:57 +0200; 27s ago
Process: 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=service
UNIT LOAD ACTIVE SUB JOB DESCRIPTION
abrt-ccpp.service loaded active exited LSB: Installs coredump handler which
saves segfault data
abrt-oops.service loaded active running LSB: Watches system log for oops
messages, creates ABRT dump directories for each oops
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
accounts-daemon.service loaded active running Accounts Service
atd.service loaded active running Job spooling tools
[output truncated]
这个例子中显示,abrtd服务已经装载,激活,且正在运行,没有对应的任务。
7.2.2 运行服务
systemctl start service_name.service
这个命令将立即启动对应的服务。
例子7.5 启动httpd服务
~]# systemctl start httpd.service
7.2.3 关闭服务
systemctl stop service_name.service
例子7.6 关闭telnet服务
~]# systemctl stop telnet.service
7.2.4 重启服务
systemctl restart service_name.service
例子7.7 重启sshd服务
让/etc/ssh/sshd_config的配置生效,需要重启sshd服务:
~]# systemctl restart sshd.service
7.3 其它信息
0 0
原创粉丝点击