掌握System V或systemd上的Linux服务管理

日期: 2015-03-09 作者:Sander van Vugt翻译:吴炫国 来源:TechTarget中国 英文

服务管理是Linux系统管理员的一个基本工作。现在让我们来看看用System V或者systemd怎么管理服务。 如果你平时大多数都是在管理Windows系统,或者说你是一个Linux管理方面的新手,你最需要学习如何启动,停止和检查服务状态。Linux系统的一些新变化已使Linux服务管理更加复杂。

许多过去在UNIX系统使用的技巧被带到了Linux系统。这里面其中一个是用 System V来启动服务,它也是一直占主导地位的Linux服务管理的方法。 System V和Upstart service management(这是System V最新的一个增强版)通过init脚本管理服务。这些复杂……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

服务管理是Linux系统管理员的一个基本工作。现在让我们来看看用System V或者systemd怎么管理服务。

如果你平时大多数都是在管理Windows系统,或者说你是一个Linux管理方面的新手,你最需要学习如何启动,停止和检查服务状态。Linux系统的一些新变化已使Linux服务管理更加复杂。

许多过去在UNIX系统使用的技巧被带到了Linux系统。这里面其中一个是用 System V来启动服务,它也是一直占主导地位的Linux服务管理的方法。

System V和Upstart service management(这是System V最新的一个增强版)通过init脚本管理服务。这些复杂的shell脚本位于/etc/init.d目录,这些脚本可用于启动,停止和监控服务的状态。

那要怎么使用System V来管理服务?很简单,使用service命令行加服务的名称和你要执行的动作。例如,service httpd status可以查看httpd Web服务器当前的状态。这种方案适用于大多数Linux系统,如ubuntu、RHEL,而且大部分系统在内置System V管理的时候并没有公开声明。

System V使用运行级别来确定哪些服务跟随服务器的启动而启动。运行级别runlevel决定着服务器自动启动时服务的状态,用数字来表示。如运行级别5表示服务进入图形模式运行,而运行级别3则表示服务进入命令行模式运行。

添加服务到runlevel服务级别,可以使用chkconfig命令,后面加上服务名称和执行的功能,如chkconfig httpd on ,表示开启httpd服务的自动启动。一般情况下,大多数服务都清楚自己的运行级别,所以没必要添加更多的参数。

Systemd


在过去的一年,大多数Linux系统开始使用systemd来管理服务了。

systemd是一种智能的服务启动方法,它会在服务需求启动的时候自动启动。那么怎么使用systemd来管理服务呢?使用systemctl命令加上要执行的操作,最后是服务名称,如systemctl status httpd (执行完注意看状态输出,如下例)

Listing 1. An example of Linux service availability monitored with systemctl. Note: Some lines are ellipsized, use -l to show in full.
[root@localhost ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
Active: active (running) since Wed 2014-12-17 06:06:21 EST; 3s ago
Main PID: 63117 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─63117 /usr/sbin/httpd -DFOREGROUND
├─63118 /usr/sbin/httpd -DFOREGROUND
├─63119 /usr/sbin/httpd -DFOREGROUND
├─63120 /usr/sbin/httpd -DFOREGROUND
├─63121 /usr/sbin/httpd -DFOREGROUND
└─63122 /usr/sbin/httpd -DFOREGROUND
Dec 17 06:06:21 localhost.localdomain httpd[63117]: AH00558: httpd: Could not reliably determine the se...age
Dec 17 06:06:21 localhost.localdomain systemd[1]: Started The Apache HTTP Server.

和系统直接显示journald这个日志服务一样, systemctl显示当前服务状态的更详细信息。Service httpd status只能查看服务的状态,如只显示如果服务是否处于运行状态,而systemctl status httpd则可以显示整个服务的子线程,关联进程状态等更详细的信息。

使用systemctl启动和停止服务非常简单。例如,使用systemctl start httpd可以启动httpd,或systemctl stop httpd可以停止httpd服务。

Systemd同时去掉了运行级别的区分。管理服务只需要通过systemctl enable 服务名和systemctl disable 服务名来启用和禁用服务。例如,如果您的Web服务器要在重新启动服务器后可用,用systemctl enable httpd命令就可以了。

翻译

吴炫国
吴炫国

吴炫国,在网络管理领域有丰富经验,专注硬件、服務器、WiFi等方面。强烈爱好虚拟化,TechTarget中国虚拟化论坛版主。

相关推荐