liunx服务与进程管理

服务管理与进程管理

服务管理

服务:一些特殊的程序启动之后持续在后台工作,等待用户或其他软件调用的程序。


功能:
    系统服务:服务对象是linux系统本身或者是linux系统用户
    网络服务:服务对象是网络上其他客户端

启动方式
    
      独立系统服务:启动后除非系统关闭或管理员手动结束,否则都将在后台执行,不管是否用到
        
        优点:响应速度快              缺点:占用系统资源
        
      临时服务:用时启动,使用完毕后关闭
        优点:节省资源             缺点:响应速度慢    

    1、系统调度启动(开机自启动)
    2、手动启动
    3、计划调度启动  (计划任务)


服务管理

    系统的 /etc/rc.d/init.d/下是存放服务的启动脚本
手动启动服务
    linux下通用的服务启动方法
    1、/etc/init.d/network(服务的启动脚本名称)  start/stop/restart/status/。。。。。。。。。
    Redhat系列遵循的
    2、service network(服务的启动脚本名称)start/stop/restart/status/reload。。。。。。。
start 启动
stop  停止
restart 重启
reload  重新加载配置文件
status  查看服务状态
condrestart  有条件重启,(此服务必须已经启动)


开启自启动

运行级别  linux  0、1、2、3、4、5、6   7个运行级别
0 关机状态
1 单用户
2 非完全多用户
3 完全多用户
4 保留
5 图形界面
6 重启状态

init命令切换运行级别  init 运行级别

chkconfig
    --list (servicename)查看服务的启动状态(查看是否开机自启动) 不加服务名,则查看所有服务


chkconfig servername on/off  把一个服务开启/关闭自启动(默认开/关2、3、4、5)

chkconfig --level (0-6) servername  制定运行级别

chkconfig --add/--del  servername   设置一个服务是否能被chkconfig支持

临时服务
    Unix系统当中inetd负责管理临时服务
        缺陷:每当有新服务时都要回炉重造,  
    linux临时服务是有xinetd负责管理的(解决了inetd的缺陷)

    xinetd:
        本身是一个独立的服务
        5版本默认安装的,,6版本默认没有安装的
        /etc/xinetd.conf
        /etc/xinetd.d/
        /etc/init.d/xinetd start/stop/status/restart

7系统   systemctl start/stop/reload/enable/disable sshd.service


进程管理:
        
    程序:可以在cpu中运行的二进制文件(以内容来说)
        静态的指令集合,唯一消耗的是存储空间
    
    进程:是程序的动态执行过程,申请 调度系统资源  具有生命周期,会产生和消亡。
(系统资源:CPU 内存 磁盘IO 网络,)

    进程的属性
        
        进程识别号  PID
                实际用户识别号    实际组识别号        确定进程的执行者是谁
                有效用户识别号    有效组识别号        确定进程有多大的权利


      普通用户执行passwd命令时  实际启动这个命令的进程是 普通启动的吧   实际用户识别号(500)  实际组识别号(500) 有效用户识别号(0)  有效组识别号(500)   /etc/shadow

        进程的输入输出环境
            打开文件描述符     充当信息的源或者接收器
            内存映射文件        内存映射文件
            文件的系统变量    进程运行时侯涉及到工作目录、权限等
            环境变量          进程运行所有环境的统称,例如:  语言   命令等
            遗留信息          每一个进程都有一个识别号(PID),每一个进程创建的时候会明确定义一个父进程和可能执行的子进程
            凭证              资源使用的权限
            资源统计和限制    资源使用的记录(消耗多少cpu、内存。。。。。)


进程的启动方式

    进程的类型     交互进程    批处理进程    守护进程

    手工启动(如:手动打开游戏或者应用)    调度启动(事先进行设置,如:手机闹钟)

        command &  后台启动且状态为running
        执行中的任务  Ctrl+z  从前台变到后台且状态为stop 暂停
        jobs     查看后台有哪些工作
        fg num     将后台指定序号的工作调回前台(Ctrl+c就会终止程序)
        bg num     将后台指定序号的工作状态由stop改为running


ps  top  查看进程

ps(只能保存按回车时进程的状态, 静态的查看进程)
语法:ps 参数|选项
        A ,e ,ax   显示所有进程
        C  command  查看包含指定命令的进程
        U  username  查看属于指定用户的进程
        t tty1-6   查看指定终端开启的进程
        p 1234      查看指定进程号的进程
        f        详细信息
        l      长格式
        o         自定义查看

    ps -aux   /   ps -ef  查看所有进程  一般配合grep使用
    ps -eo   自定义查看格式
        user 用户名
        uid    uid
        pid   进程号
        ppid  父进程号
        size  内存大小
        vsize 总虚拟内存大小
        pri   内核调度优先级
        pmem  内存占用率
        rss  使用的总物理内存
        time  cpu占用时间
        stat  进程的状态
        cmd/args  命令/参数
        
ps 表头
USER  启动进程的用户
PID    进程号
%CPU  cpu使用率
%MEM  内存使用率
VSZ   虚内存使用量
RSS   物理内存使用量
TTY   哪个终端开启的
STAT   进程的状态
       D    不可中断的进程
       R    正在运行的进程
       S    休眠的进程
       T    停止的进程
     
       X    即将结束的进程
       **Z    僵尸进程()  他的父进程没收尸(程序员的问题)  意外情况
       <    高优先级进程
       N    低优先级进程
       L    有页锁定在内存当中
       s    他是父进程
       l    多线程的宿主
       +    位于后台的进程组

START   开始时间
TIME    CPU占用时间
COMMAND  命令

进程和线程的区别:

进程:有独立的资源(cpu mem io net)
线程:共享宿主进程的资源

top(实时的查看进程)


kill 命令(杀进程,结束进程)
语法:kill 参数|选项   进程号
        
        -1 (-HUP)  重新加载  
        -2 (-INT)  Ctrl+c
        -9 (-KILL) 立即杀死
        -15 (-TERM) 停止(自己收拾收拾,去死吧)  默认值

信号    Unix系统中 信号是进程间最原始的通信机制  Unix有linux(有64个信号)中的半
pipe

killall command 与command有关的所有进程全部干死


程序(进程)的优先级

优先级:数值越小优先级越高,数值越大有限越小

PR:进程的优先级(由内核控制的)
NI:nice值(默认0) (-20到19{redhat系列})普通用户可以调整的范围0-19,    root用户-20 - 19

PR=系统优先级+nice值

nice renice

ps -l 查看当前shell启动的进程


nice 指定启动程序的优先级
语法:nice 参数|选项  command 
        -n 指定优先级 (优先级范围-20到19,   默认10)

eg: nice -n 15 passwd

renice 修改已经启动进程的优先级

语法:renice  优先级 参数|选项 agrs

        [-n] 指定优先级
        -p   指定pid
        -u    指定用户名
        -g    指定pgid


last 最后一次登录信息 只记录最近一个月的,只记录 ftp  telnet  ssh  本地

w 谁在登陆我

uname
 

你可能感兴趣的:(Linux运维-初级)