linux 进程
init
init 启动后读取 inittab 文件,执行缺省运行级别,从而继续引导过程。在 UNIX 系统中,
init 是第一个可以存在的进程,它的 PID 恒为 1,但它必须向一个更高级的功能负责;PID
为 0 的是内核调度器(Kernel scheduler),从而获得 CPU 时间。
父子进程关系:
父进程终止,子进程自然终止
a
1、父亲死了,儿子死了--孤儿进程
|
自动把父进程指向 init
b
2、儿子死了,父亲不知道--僵尸进程(用 kill 处理)
Zombie
/etc/inittab
inittab 文件格式:id:runlevels:action:process
id-数字标识,一般为两个字母或数字。
runlevels-指定运行级别 0-6 可指定多个
0-关机
1-单用户模式(类似 Windows 安全模式)只有 root 登录、没有图形界面
S s
2-多用户模式,不启用 NFS,命令行界面
3-完整多用户模式,命令行界面
NFS-网络文件系统 Network File System Linux/UNIX 文件共享
Sun NIS 网络信息系统 资源集中管理服务 Information System
4-自己定制
5-多用户的图形界面(默认) X11 X11R6 xfree86
6-重启
init 切换运行级别
# init [0123456sS] 或 #telinit[0123456sS]
$init 0 关机
$init 6 重启
$runlevel 查看当前运行级别
切换过用户后和未切换过用户的$runlevel 输出结果不一样 S 或 s 表示为单用户模式
action:指定运行状态
action 常用取值:
initdefault:指定系统缺省启动的运行级别
sysinit:系统启动执行 process 中指定的命令
wait:执行 process 中指定的命令,并等其结束在运行其他命令。
once:执行 process 中指定的命令,不等待其结束
ctrlaltdel:按下 Ctrl+Alt+Del 时执行 process 指定的命令
powerfail:当出现电源错误时执行 process 指定的命令,不等待其结束。
powerokwait:当电源恢复时执行 process 指定的命令。
respawn:一旦 process 指定的命令中止,便重新运行该命令。
process:要执行的操作(命令或脚本)
initdefault
id:3:initdefault:
Window,则将 3 改为 5
/etc/rc.d/rc.sysinit
si::sysinit:/etc/rc.d/rc.sysinit
启动脚本/etc/rc.d/rc.sysinit,
完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启
动信息日志文件等。
runlevels 为空,标识任何运行级别都可以执行
/etc/rc.d/rc
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
判断默认运行级别,调用/etc/rc.d/rc 脚本,执行相应运行级别目录中的服务程序,完成相应级别的初始化设置
/etc/rc.d/init.d 目录下包含各个运行级别的服务程序脚本
Linux 服务器启动脚本存放的目录:
/etc/rc.d/init.d
/etc/init.d-> rc.d/init.d
$ /etc/rc.d/init.d/vsftpd
用法:/etc/rc.d/init.d/vsftpd {start|stop|restart|condrestart|status}
start 启动 stop 停止 restart 重启 condrestart 重启前检测服务器是否启动该服
务 status 查看服务状态
# /etc/rc.d/init.d/vsftpd start
# /etc/rc.d/init.d/vsftpd restart
# /etc/rc.d/init.d/vsftpd stop
# /etc/rc.d/init.d/vsftpd status
service 服务名称 start|stop|restart
$ service nfs restart
设置自启动程序
vi /etc/rc.d/init.d/msg.script
date >> /root/msg.today
who >> /root/msg.today
free >> /root/msg.today
chmod u+x /etc/rc.d/init.d/msg.script
ln -s /etc/rc.d/init.d/msg.script /etc/rc.d/rc3.d/S100msg.script
chkconfig
$chkconfig --list sshd
chkconfig --list 服务名称 查看服务启动状态
chkconfig --level 运行级别 服务名称 on|off
$chkconfig --list sshd
$chkconfig --level 245 sshd off
$chkconfig --list sshd
$chkconfig --level 2 sshd o
用 sudo 代替 su:
-在执行 sudo 命令时,临时成为 root
-不会泄漏 root 口令
-仅向用户提供有限的命令使用权限
配置 sudo:使用 root 执行 visudo 编辑配置文件 (visudo 锁定文件)
配置文件/etc/sudoers 必须用 root 编辑
格式:用户名(组名) 主机地址=命令(绝对路径)
[root@helen ~]# rpm -q sudo
sudo-1.7.2p1-5.el5
[root@helen ~]# cat /etc/sudoers
[root@helen ~]# visudo
samlee 192.168.0.103=/usr/sbin/useradd,/usr/sbin/userdel,/sbin/shutdown -h
now(Linux 不支持 localhost 时用 IP 地址)