JavaScript is required to for searching.
跳过导航链接
退出打印视图
手册页第 1M 部分:系统管理命令     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

简介

系统管理命令-第 1 单元

6to4relay(1M)

acct(1M)

acctadm(1M)

acctcms(1M)

acctcon1(1M)

acctcon(1M)

acctcon2(1M)

acctdisk(1M)

acctdusg(1M)

acctmerg(1M)

accton(1M)

acctprc1(1M)

acctprc(1M)

acctprc2(1M)

acctsh(1M)

acctwtmp(1M)

acpihpd(1M)

adbgen(1M)

add_allocatable(1M)

addbadsec(1M)

add_drv(1M)

arp(1M)

asradm(1M)

asr-notify(1M)

atohexlabel(1M)

audit(1M)

auditconfig(1M)

auditd(1M)

auditrecord(1M)

auditreduce(1M)

auditstat(1M)

audit_warn(1M)

automount(1M)

automountd(1M)

autopush(1M)

bart(1M)

beadm(1M)

boot(1M)

bootadm(1M)

bootconfchk(1M)

bootparamd(1M)

busstat(1M)

captoinfo(1M)

catman(1M)

cfgadm(1M)

cfgadm_ac(1M)

cfgadm_cardbus(1M)

cfgadm_fp(1M)

cfgadm_ib(1M)

cfgadm_pci(1M)

cfgadm_sata(1M)

cfgadm_sbd(1M)

cfgadm_scsi(1M)

cfgadm_sdcard(1M)

cfgadm_shp(1M)

cfgadm_sysctrl(1M)

cfgadm_usb(1M)

chargefee(1M)

chat(1M)

check-hostname(1M)

check-permissions(1M)

chk_encodings(1M)

chroot(1M)

cimworkshop(1M)

ckpacct(1M)

clear_locks(1M)

clinfo(1M)

closewtmp(1M)

clri(1M)

comsat(1M)

consadm(1m)

console-reset(1M)

conv_lp(1M)

conv_lpd(1M)

coreadm(1M)

cpustat(1M)

croinfo(1M)

cron(1M)

cryptoadm(1M)

cvcd(1M)

datadm(1M)

dcopy(1M)

dcs(1M)

dd(1M)

ddu(1M)

ddu-text(1M)

devchassisd(1M)

devfsadm(1M)

devfsadmd(1M)

device_allocate(1M)

device_remap(1M)

devinfo(1M)

devlinks(1M)

devnm(1M)

devprop(1M)

df(1M)

dfmounts(1M)

dfmounts_nfs(1M)

dfshares(1M)

dfshares_nfs(1M)

df_ufs(1M)

dhcpagent(1M)

dhcpconfig(1M)

dhcpmgr(1M)

dhtadm(1M)

dig(1M)

directoryserver(1M)

diskinfo(1M)

disks(1M)

diskscan(1M)

dispadmin(1M)

dladm(1M)

dlmgmtd(1M)

dlstat(1M)

dmesg(1M)

dminfo(1M)

dns-sd(1M)

dnssec-dsfromkey(1M)

dnssec-keyfromlabel(1M)

dnssec-keygen(1M)

dnssec-makekeyset(1M)

dnssec-signkey(1M)

dnssec-signzone(1M)

dodisk(1M)

domainname(1M)

drd(1M)

drvconfig(1M)

dsbitmap(1M)

dscfg(1M)

dscfgadm(1M)

dscfglockd(1M)

dsstat(1M)

dsvclockd(1M)

dtrace(1M)

dumpadm(1M)

editmap(1M)

edquota(1M)

eeprom(1M)

efdaemon(1M)

embedded_su(1M)

etrn(1M)

fbconfig(1M)

fbconf_xorg(1M)

fcadm(1M)

fcinfo(1M)

fdetach(1M)

fdisk(1M)

ff(1M)

ff_ufs(1M)

fingerd(1M)

fiocompress(1M)

flowadm(1M)

flowstat(1M)

fmadm(1M)

fmd(1M)

fmdump(1M)

fmstat(1M)

fmthard(1M)

format(1M)

fpsd(1M)

fruadm(1M)

fsck(1M)

fsck_pcfs(1M)

fsck_udfs(1M)

fsck_ufs(1M)

fsdb(1M)

fsdb_udfs(1M)

fsdb_ufs(1M)

fsirand(1M)

fssnap(1M)

fssnap_ufs(1M)

fsstat(1M)

fstyp(1M)

fuser(1M)

fwflash(1M)

fwtmp(1M)

getdevpolicy(1M)

getent(1M)

gettable(1M)

getty(1M)

gkadmin(1M)

groupadd(1M)

groupdel(1M)

groupmod(1M)

growfs(1M)

grpck(1M)

gsscred(1M)

gssd(1M)

hald(1M)

hal-device(1M)

hal-fdi-validate(1M)

hal-find(1M)

hal-find-by-capability(1M)

hal-find-by-property(1M)

hal-get-property(1M)

hal-set-property(1M)

halt(1M)

hextoalabel(1M)

host(1M)

hostconfig(1M)

hotplug(1M)

hotplugd(1M)

htable(1M)

ickey(1M)

id(1M)

idmap(1M)

idmapd(1M)

idsconfig(1M)

ifconfig(1M)

if_mpadm(1M)

ifparse(1M)

iiadm(1M)

iicpbmp(1M)

iicpshd(1M)

ikeadm(1M)

ikecert(1M)

ilbadm(1M)

inetadm(1M)

ilomconfig(1M)

imqadmin(1M)

imqbrokerd(1M)

imqcmd(1M)

imqdbmgr(1M)

imqkeytool(1M)

imqobjmgr(1M)

imqusermgr(1M)

in.chargend(1M)

in.comsat(1M)

in.daytimed(1M)

in.dhcpd(1M)

in.discardd(1M)

in.echod(1M)

inetadm(1M)

inetconv(1M)

inetd(1M)

in.fingerd(1M)

infocmp(1M)

in.iked(1M)

init(1M)

init.sma(1M)

init.wbem(1M)

inityp2l(1M)

in.lpd(1M)

in.mpathd(1M)

in.named(1M)

in.ndpd(1M)

in.rarpd(1M)

in.rdisc(1M)

in.rexecd(1M)

in.ripngd(1M)

in.rlogind(1M)

in.routed(1M)

in.rshd(1M)

in.rwhod(1M)

install(1M)

installboot(1M)

installf(1M)

installgrub(1M)

in.stdiscover(1M)

in.stlisten(1M)

in.talkd(1M)

in.telnetd(1M)

in.tftpd(1M)

in.timed(1M)

intrd(1M)

intrstat(1M)

in.uucpd(1M)

iostat(1M)

ipaddrsel(1M)

ipadm(1M)

ipf(1M)

ipfs(1M)

ipfstat(1M)

ipmgmtd(1M)

ipmon(1M)

ipmpstat(1M)

ipnat(1M)

ippool(1M)

ipqosconf(1M)

ipsecalgs(1M)

ipsecconf(1M)

ipseckey(1M)

iscsiadm(1M)

isns(1M)

isnsadm(1M)

itadm(1M)

itu(1M)

k5srvutil(1M)

kadb(1M)

kadmin(1M)

kadmind(1M)

kadmin.local(1M)

kcfd(1M)

kclient(1M)

kdb5_ldap_util(1M)

kdb5_util(1M)

kdcmgr(1M)

kernel(1M)

keyserv(1M)

killall(1M)

kmscfg(1M)

kprop(1M)

kpropd(1M)

kproplog(1M)

krb5kdc(1M)

ksslcfg(1M)

kstat(1M)

ktkt_warnd(1M)

labeld(1M)

labelit(1M)

labelit_hsfs(1M)

labelit_udfs(1M)

labelit_ufs(1M)

lastlogin(1M)

latencytop(1M)

ldapaddent(1M)

ldap_cachemgr(1M)

ldapclient(1M)

ldmad(1M)

link(1M)

llc2_loop(1M)

lldpadm(1M)

lldpd(1M)

lms(1M)

localectr(1M)

locator(1M)

lockd(1M)

lockfs(1M)

lockstat(1M)

lofiadm(1M)

logadm(1M)

logins(1M)

lpget(1M)

lpset(1M)

luxadm(1M)

系统管理命令-第 2 单元

系统管理命令-第 3 单元

init

- 进程控制初始化

用法概要

/usr/sbin/init [0123456abcQqSs]

描述

init 是缺省的最初用户进程。(正如 kernel(1M) 中所述,引导期间提供给内核的选项可能会导致调用备用原始用户进程)。init 启动服务管理工具的核心组件 svc.configd(1M)svc.startd(1M),如果这些组件失败则会重新启动它们。如下所述,为了实现向后兼容性,init 还可以根据 /etc/inittab 启动或重新启动一般进程。

下面给出的运行级别和系统引导描述仅为兼容性目的提供,除此以外服务管理工具 smf(5) 已将其废弃。

init 失败

如果 init 由于系统关闭以外的任何原因而退出,它将会以进程-ID 1 重新启动。

定义的运行级别

在任意给定时间,系统都处于八个可能的运行级别。运行级别是一个软件配置,其下只存在一组选定的进程。init 为这些运行级别中的每个级别产生的进程都在 /etc/inittab 中进行定义。init 可以处于八个运行级别 0-6SsSs 相同)中的一个级别。特权用户运行 /usr/sbin/init 时,运行级别会改变。

init 和系统引导

引导系统时,会调用 init 并进行以下操作。首先,它会读取 svc:/system/environment:init 服务的属性。这些属性中包含与语言环境相关的环境的值,例如 LANGLC_CTYPE init 随后会在 /etc/inittab 中查找 initdefault 项(请参见 inittab(4))。如果 initdefault 项:

存在

仅当尚未为 svc.startd(1M) 指定选项/里程碑属性时,init 通常会使用该项中指定的运行级别作为要进入的初始运行级别相同。

不存在

服务管理工具 smf(5) 检查其在 svc.startd(1M) 中的指定配置,然后进入选项/里程碑属性指定的里程碑。

/etc/inittab 中的 initdefault 项对应于以下运行级别:

Ss

init 进入单用户状态。在该状态下,将打开系统控制台设备 (/dev/console) 以读取和写入,并调用命令 /usr/sbin/su(请参见 su(1M))。使用 init 更改系统的运行级别。请注意,如果终止 shell(使用文件结束符),则 /etc/inittab 不存在时,init 仅重新初始化到单用户状态。

0-6

init 进入相应的运行级别。运行级别 056 是为关闭系统而保留的状态。运行级别 234 都可用作多用户操作状态。

如果这是开机后 init 第一次进入了除单用户状态之外的运行级别,init 会首先扫描 /etc/inittab 以查找 bootbootwait 项(请参见 inittab(4))。如果进入的运行级别与这些项的运行级别匹配,会在对 /etc/inittab 进行任何其他处理之前执行这些项。这样,可以在系统允许用户之前进行操作系统的任何特殊初始化,如挂载文件系统。然后,init 扫描 /etc/inittab,并执行该运行级别要处理的所有其他项。

要在 /etc/inittab 中产生每个进程,init 读取每个项,对于应该重新产生的每个项,它会派生一个子进程。派生了 /etc/inittab 指定的所有进程后,init 等会待其一个后代进程的终止、powerfail 信号或来自其他 init 进程的要求更改系统运行级别的信号。出现以上一个条件时,init 会重新检查 /etc/inittab

添加 inittab 项

可随时向 /etc/inittab 添加新项,但是,init 仍会等待出现以上三个条件之一后才重新检查 /etc/inittab。要解决此问题,init Qinit q 命令可以唤醒 init 以立即重新检查 /etc/inittab

init 在引导时间工作时,只要系统从单用户状态改为其他运行状态,init 都会将控制台的 ioctl(2) 状态设置为文件 /etc/ioctl.syscon 中保存的那些模式。进入单用户状态时,init 都会向此文件写入。

运行级别更改

提出运行级别更改请求时,init 或某个指令会向未在目标运行级别中定义的所有进程发送警告信号 (SIGTERM)。在 init 或其指令通过发送中止信号 (SIGKILL) 来强行终止这些进程之前,会观察一个五秒钟的最小时间间隔。此外,init 还会通知 svc.startd(1M),说明将更改运行级别。svc.startd(1M) 随后禁止系统使用与运行级别更改相对应的里程碑所依赖的服务集合。

init 收到信号告知其产生的进程已经终止时,它会在 /var/adm/utmpx/var/adm/wtmpx 中记录其终止的事实和原因,如果有的话(请参见 who(1))。产生的进程的历史保存在 /var/adm/wtmpx 中。

如果 init 收到 powerfail 信号 (SIGPWR),它会扫描 /etc/inittab,查找 powerfailpowerwait 类型的特殊项。将在进一步处理发生之前调用这些项(如果运行级别允许)。这样,init 可以在操作系统电源关闭期间执行各种清理和记录功能。

设置环境变量

对于 svc:/system/environment:init 服务的属性列表中的环境变量(例如时区和字符格式化等项),您可以为其设置缺省值。

安全

init 使用 pam(3PAM) 来进行会话管理。通过 /etc/pam.conf 列出的 PAM 配置策略可以指定要用于 init 的会话管理模块。下面是部分 pam.conf 文件,包含针对使用 UNIX 会话管理模块的 init 的项。

init   session   required    pam_unix_session.so.1

如果没有用于 init 服务的项,将使用用于“其他”服务的项。

选项

0

进入固件。

1

将系统置于系统管理员模式。挂载所有本地文件系统。只剩下一小部分必需的内核进程在运行。该模式用于安装可选实用程序包等管理任务。所有文件均可访问,没有用户在系统上登录。

该请求对应于 smf(5) 将系统里程碑限制为 svc:/milestone/single-user:default 的请求。

2

将系统置于多用户模式。将产生所有多用户环境终端进程和守护进程。该状态通常称为多用户状态。

该请求对应于 smf(5) 将系统里程碑限制为 svc:/milestone/multi-user:default 的请求。

3

通过使本地资源可在网络中使用来扩展多用户模式。

该请求对应于 smf(5) 将系统里程碑限制为 svc:/milestone/multi-user-server:default 的请求。

4

可以定义为备用多用户环境配置。它对于系统操作不是必需的,通常不使用。

5

关闭机器,从而安全拔下电源。如果可能,拔下机器上的电源。

6

停止操作系统,重新引导至 /etc/inittab 中的 initdefault 项定义的状态。

缺省情况下,启用服务 svc:/system/boot-config:defaultconfig/fastreboot_default 属性设置为 true 时,init 6 会根据系统的具体功能,跳过某些固件初始化和测试步骤。

a,b,c

只处理设置了 abc 运行级别的那些 /etc/inittab 项。这些是伪状态,可以定义它们来运行某些命令,但是不会改变当前的运行级别。

Q,q

重新检查 /etc/inittab

S, s

进入单用户模式。这是唯一不需要存在正确格式化的 /etc/inittab 文件的运行级别。如果该文件不存在,缺省情况下,init 可以进入的唯一合法运行级别是单用户模式。在单用户模式下时,将会挂载基本系统操作所需的文件系统。系统降为单用户模式时,这些文件系统会保持挂载(即使是由远程文件服务器提供),且任何其他文件系统也会保留挂载。向下转换为单用户模式过程中,initinit.d 脚本启动的、应只在多用户模式下运行的所有进程都会被中止。此外,还将中止具有 utmpx 项的任何进程。此最后一个条件确保将中止 SAC 启动的所有端口监控器,并且将中止这些端口监控器启动的所有服务,包括 ttymon 登录服务。

该请求对应于 smf(5) 将系统里程碑限制为 svc:/milestone/single-user:default 的请求。

文件

/dev/console

系统控制台设备。

/etc/default/init

该文件已过时,在将来的发行版中可能会被删除。init 进程会读取 svc:/system/environment:init 服务的属性,而不是从该文件获取值。为了对之前通过编辑 /etc/default/init 所做的更改进行更改,具有系统管理员或系统配置权限配置文件的管理员可以设置 init 服务实例的相应属性并刷新该实例。

该只读文件包含环境变量及其缺省值。这些变量是:

TZ

始终设置为 localtime。要设置系统时区,管理员必须设置 timezone:default SMF 服务中的 timezone/localtime 属性。

CMASK

init 使用的以及每个进程从 init 进程继承的掩码(请参见 umask(1))。如果没有设置,init 使用从内核继承的掩码。请注意,init 在创建文件前始终尝试使用 022 umask,而不管 CMASK 的设置

LC_CTYPE

字符特征化信息

LC_MESSAGES

消息转换

LC_MONETARY

货币格式化信息

LC_NUMERIC

数字格式化信息

LC_TIME

时间格式化信息

LC_ALL

如果设置,所有其他 LC_* 环境变量都会采用此值。

LANG

如果未设置 LC_ALL,也未设置任何特定 LC_*LANG 值会用于该特定环境变量。

/etc/inittab

通过 init 控制进程分发。

/etc/ioctl.syscon

控制台的 ioctl 状态,由 init 保存。

/etc/svc/volatile/init.state

从故障恢复所需的 init 状态。

/var/adm/utmpx

用户访问和管理信息。

/var/adm/wtmpx

有关用户访问和管理信息的历史记录。

/var/run/initpipe

用于内部通信的命名管道。

属性

有关以下属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

login(1)sh(1)stty(1)who(1)kernel(1M)shutdown(1M)su(1M)svc.configd(1M)svc.startd(1M)ttymon(1M)ioctl(2)kill(2)ctime(3C)pam(3PAM)init.d(4)inittab(4)pam.conf(4)TIMEZONE(4)utmpx(4)attributes(5)pam_unix_session(5)smf(5)termio(7I)

诊断

如果 init 发现它在两分钟内从 /etc/inittab 重新产生某个项超过十次,它会认定该项中的命令字符串中有错误,并在系统控制台生成错误消息。然后,它拒绝重新产生此项,直到过去了五分钟时间或者它收到来自用户产生的 init 命令的信号。这样可以防止 init 在以下情况时用光系统资源:有人在 inittab 文件中犯了打字错误,或者 /etc/inittab 中引用的某个程序已被删除。

附注

init 仅可由特权用户运行。

Ss 状态不能在 /etc/inittab 中无差别地使用。修改此文件时,最好避免将此状态添加到除 initdefault 之外的任何行。

如果未在 /etc/inittab 中的 initdefault 项中指定缺省状态,会进入状态 6。结果,系统会陷入循环,不断地进入固件和重新引导。

如果在引导系统时无法创建 utmpx 文件,无论 /etc/inittab 中的 initdefault 中指定了什么状态,系统都会引导至状态 s。如果无法访问 /var 文件系统,会发生这种情况。

系统向下转换为 Ss 状态时,会创建 /etc/nologin 文件(请参见 nologin(4))。在后续转换至运行级别 2 时,将删除该文件。

init 使用 /var/run/initpipe(命名管道)进行内部通信。