AIX作为一种服务器系统,其综合功能是提供“服务”。除了安装数据库应用(Oracle、Sybase等)外,AIX本身也提供了若干的服务功能:sendmail、ypserv、inetd、syslogd 和sendmail等。
这些功能往往由若干命令和程序构成,在AIX中,我们将其称为子系统(SubSystem)或服务,由AIX系统资源控制器(SRC)控制。这些服务通常能够独立操作,被设计为一个一个的部件,提供某些指定的功能。同时,这些服务形成子系统组、子系统、子服务三个层次,以便于管理和维护,如图2-4 所示。
图2-4 AIX中服务的层次归属
对应地,AIX也为系统资源控制器提供了一组命令,用来管理和控制子系统。其中用来显示当前系统中子系统、子系统组、子系统活动状态的命令如下:
系统资源控制器(SRC)按照层次结构的方式架构,首先从操作系统开始,然后是子系统组(一组指定的子系统,如TCP/IP服务、SNA服务、网络信息系统和网络文件系统等),该子系统组包含了一个子系统(如ypserv、ntsd、qdaemon、inetd、syslogd 和sendmail等守护进程)。最后,该子系统又可划分为多个子服务器(属于子系统的程序或进程,如FTP服务器等)。
启动系统资源控制器的命令为/usr/sbin/srcmstr。在AIX系统启动的初始化期间/usr/sbin/srcmstr即启动。观察/etc/inittab系统启动配置文件,我们会发现其中的这几行:
上述语句表明AIX中系统资源控制器将默认启动。当然,如果srcmstr并未启动,则可用命令方式直接启动srcmstr守护进程,使系统资源控制器启动。
系统资源控制器启动以后,AIX就可以使用系统资源控制器提供的资源管理命令启动或停止子系统/子服务器了。常用的系统资源控制器命令如下。
■ startsrc:该命令启动指定的系统资源,如某个子系统、子系统组或子服务器。
■ stopsrc:该命令停止指定的系统资源,如某个子系统、子系统组或子服务器。
■ lssrc:该命令显示系统资源,如子系统、子系统组或子服务器当前的活动状态。
■ refresh:该命令用来告知系统资源以刷新其本身。
通过SRC启动或停止资源,SRC必须处于运行状态。在默认情况下,SRC在系统初始化时已经启动。通过ps -A命令可以查看srcmstr进程是否启动:
另外,启动SRC资源的必须是root权限用户,同样关闭SRC资源的用户也必须具有root权限。
如前所述,启动系统资源可以使用startsrc命令,生产环境下启动资源一般采用下面三种方法之一:
■ 设置/etc/inittab文件,在/usr/sbin/srcmstr之后的一行上添加startsrc命令启动某项指定服务,使AIX在初始化期间资源就得以启动。
■ 手工执行startsrc命令从命令行启动资源。
■ 使用SMITTY工具启用资源,但其实质还是使用startsrc命令。
由于资源的层次结构,启动子系统组将导致启动它的所有子系统。启动子系统也将导致其所有子服务器启动。反之,当启动子服务器时,如果父级子系统还未运行,则会自动启动该子系统。
当然,停止子系统时,相关所有子服务器也将同时停止。但反之不成立——停止子服务器不会导致父级子系统的运行状态更改。
下面的示例启动NFS子系统。首先查看NFS的状态,可以看到NFS尚未启动:
下面启动NFS:
再次检查NFS,该服务已处于启动状态:
下面的示例从SMITTY中启动NFS子系统,执行下面的smitty快捷命令,选择要启动的子系统名(按F4 键选择),然后进行启动,如图2-5 所示。
图2-5 在SMITTY中启动子系统(服务)
下面的命令将关闭子系统:
当然,在SMITTY中也可以关闭NFS子系统,使用如下的语法即可:#Smitty stopssys。
如果需要子系统刷新其本身(如子系统属性被调整),则可以使用refresh命令来调用系统资源控制器以刷新子系统,使SRC处于运行状态。
下面的命令刷新了子系统组tcpip:
下面的命令用两种方法刷新了子系统xntpd:第一种方法是采用子系统名;第二种方法是采用进程名。
为了维护服务器的效率,提高服务器的安全性,在通常情况下AIX中启动系统资源应遵守如下的原则:
■ 不需要的服务要关闭;
■ 使用变化过的端口号启动需要的服务;
■ 尽可能为服务启用限制机制(例如FTP服务的用户访问)。
一般而言,大多数系统资源可以关闭。对于TCP/IP组来说,表2-2 列出了一些建议关闭的项。
表2-2 TCP/IP组中子系统的服务状态建议
对于inetd子系统来说,表2-3 列出了一些建议关闭的项。
表2-3 inetd子系统中各子服务启动状态建议