Linux学习之进程管理

|-进程管理
 
    进程常用命令
    
    |- w查看当前系统信息
    
    |- ps进程查看命令
    
    |- kill终止进程
    
    |- 一个存放内存中的特殊目录/proc
    
    |- 进程的优先级
    
    |- 进程的挂起与恢复
    
    |- 通过top命令查看进程
    
    计划任务
    
    |- 计划任务的重要性
    
    |- 一次性计划at和batch
    
    |- 周期性计划crontab
    
进程管理的概念
    
  进程和程序区别
    
    1.程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
    
    2.程序和进程无一一对应关系。一个程序可以由多个时程公用;另一一方面,一个进程在活动中有可顺序地执行若干个程序
    
  父子进程的关系
    
    1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程
    
    2.在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
    
    3.父进程终止子进程自然终止。
    
  前台进程和后台进程
  前台进程
    在shell提示处理打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行别一个命令,很简单,我们在执行这个查找命令时,无法进行其它操作,这个查找就属于前台进程

后台进程
    在Shell提示处打入命令,若后随一个&,Shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。"后台进程必须是非交互式的" ,再来看这个命令就变成了后台进程,我们用同样的条件进行查找,把查找记过放到hzh/test/init.find这个文件中。不影响我们前台其它的操作。
 常用进程命令
    w 查看当前系统信息
    w命令,我在之前的章节用曾用过,当时是查看当前用户信息,当然也可以查看到系统相关的信息。
    作用:查看当前系统活动摘要。

1     [[email protected] cron]# w
2     14:48:39 up 2:46, 1 user,     load average: 0.00,   0.01,   0.00
3     USER     TTY       FROM             [email protected]     IDLE   JCPU   PCPU WHAT
4     root       pts/1    192.168.203.1 12:27      0.00s   0.17s   0.02s w

w显示信息的含义:
    JCPU: 以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的CPU时间会显示在这里
    PCPU: cpu执行程序消耗的时间
    WHAT: 用户下在执行的操作
    load average :分别显示系统在过去1、5、15分钟内的平均负载程度。
    FROM:  显示用户从何处登录系统,":0"的显示代表该用户时人X Windows下,打开文本模式窗口登录的
   
IDLE:   用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置
    查看个别用户信息:w [用户名]

1     [[email protected] ~]# w root
2     23:32:01 up 52 min, 1 user, load average: 0.00, 0.00, 0.00
3     USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
4     root pts/1 192.168.203.1 22:53 0.00s 0.10s 0.01s w root

ps进程查看命令
    进程查看命令:ps
    常用选项:
    -a:显示所有用户的进程
    -u:显示用户名和启动时间
    -x:显示没有控制终端的进程
    -e:显示所有进程,包括没有控制终端的进程
    -l:长格式显示
    -w:宽行显示,可以使用多个w进行加宽显示

应用实例:
    ps 查看隶属自己的进程
    [email protected]:~# ps

 1  PID TTY TIME CMD
 2
 3     1370 pts/0 00:00:00 bash
 4
 5     3185 pts/0 00:00:00 ps
 6
 7     [email protected]:~# ps -l
 8
 9     F S    UID  PID     PPID    C   PRI   NI   ADDR   SZ     WCHAN     TTY      TIME      CMD
10
11     4 S    0     5941   5801   4   80    0   -       1882   wait      pts/2    00:00:00     bash
12
13     4 R    0     6000   5941   0   80    0   -       1121    -         pts/2    00:00:00     ps

看一下上面的选项都指的什么
    PID :   进程号
    PPLD:   父进程的进程号
    TTY :   进程启动的终端
    STAT :  进程当前状态(S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止)
    NI :    进程优先级
    TIME:   进程自从启动以后启用CPU的总时间
    COMMAND/CMD: 进程的命令名
    USER:    用户名
    %CPU:   占用CPU时间和总时间的百分比
    %MEM:  占用内存与系统内存总量的百分比
    实列:

 1     ps -u or -l 查看隶属于自己进程详细信息
 2     [email protected]:~# ps -u or -l
 3     ps -le or -aux 查看所有用户执行的进程的详细信息
 4     [email protected]:~# ps le or -aux
 5     ps -aux --sort pid 可按进程执行的时间、PID、UID等对进程进行排序
 6     [email protected]:~# ps -aux --sort pid
 7     ps -uU fnngj 查看某个用记启动的进程
 8     [email protected]:~# ps -uU fnngj
 9     ps -le | grep init 查看指定进程信息
10     [email protected]:~# ps -le | grep init

kill终止进程
    在winddow下面,我们要结束一个进程,最简单的方式就是关闭这个程序,相应的进程也会随之结束,遇到不能关闭的情况。会打开任务管理器结果掉。那么在linux下如果做呢?我们可以使用kill命令来终止进程。
    为什么要杀死进程?
    * 该进程点用了过多的CPU时间
    * 该进程缩住了一个终端,使其他前台进程无法运行
    * 运行时间过长,但没有预期效果
    * 产生了过多到屏幕或磁盘文件的输出
    * 无法正常退出
    kill用法:
    关闭进程:kill  [进程号]

 1  [email protected]:~# kill -l
 2
 3     1) SIGHUP    2) SIGINT    3) SIGQUIT    4) SIGILL    5) SIGTRAP
 4
 5     6) SIGABRT    7) SIGBUS    8) SIGFPE    9) SIGKILL    10) SIGUSR1
 6
 7     11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
 8
 9     16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
10
11     21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
12
13     26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
14
15     31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
16
17     38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
18
19     43) SIGRTMIN+9    44) SIGRTMIN+10   45) SIGRTMIN+11   46) SIGRTMIN+12   47) SIGRTMIN+13
20
21     48) SIGRTMIN+14   49) SIGRTMIN+15   50) SIGRTMAX-14   51) SIGRTMAX-13   52) SIGRTMAX- 12
22
23     53) SIGRTMAX-11   54) SIGRTMAX-10   55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
24
25     58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
26
27     63) SIGRTMAX-1    64) SIGRTMAX

我们看到每个编号对应一个含义,如 9) SIGKILL ;9标注的是SIGKILL ,那么我们可用9来终止进程。
    关闭进程:
    kill -s 9 [进程号]  (强行关闭)
    kill -9   [进程号]  (强行关闭)
    上面的两种形式都可以强行关闭进程。
    重启进程:
    有时候我们需要把进程重新启动一下,可以下面的命令完成。
    kill -1  [进程号]  (重启进程)

1 [email protected]:~# kill -1 3567    重启PID为3567的进程

关闭图形程序:
    关闭图形程序: xkill
    当你在终端下输入这个命令时,你的鼠标会变成一个小叉子,你只去点你想要关闭的窗口就可以关闭了
    其它:
    结束所有进程:    killall
    查找服务进程号: pgrep  [服务名称]
    关闭进程:          pkill    [进程名称]
    
    一个存放内存中的特殊目录/proc
    这个目录比较特殊,他并不在我们磁盘上,而在我们的内存当中;当前系统运行的所有进程都动态的存放在这个目录中。

 1     [email protected]:~# ls /proc
 2
 3     1 14 15 187 287 820 dma net
 4
 5     10 1401 1524 19 3 827 driver pagetypeinfo
 6
 7     1037 1403 1525 1906 32 830 execdomains partitions
 8
 9     1043 1413 1527 1919 34 832 fb sched_debug
10
11     1047 1414 1531 2 35 834 filesystems schedstat
12
13     11 1415 1536 20 36 840 fs scsi
14
15     1172 1418 1544 2024 454 842 interrupts self
16
17     12 1423 1555 2025 459 843 iomem slabinfo
18
19     ……
20    

上面每个编号就是以我们当前进程PID所命令的目录名。
    当然,当前目录下也存放了一些我们系统的信息
    查看我们当前cpu的信息

 1  [email protected]:~# cat /proc/cpuinfo
 2
 3     processor : 0
 4
 5     vendor_id : GenuineIntel
 6
 7     cpu family : 6
 8
 9     model : 23
10
11     model name : Pentium(R) Dual-Core CPU T4500 @ 2.30GHz
12
13     stepping : 10
14
15     cpu MHz : 2294.000
16
17     cache size : 1024 KB
18
19     fdiv_bug : no
20
21     hlt_bug : no
22
23     f00f_bug : no
24
25     coma_bug : no
26
27     fpu : yes
28
29     fpu_exception : yes
30
31     cpuid level : 13
32
33     wp : yes
34
35     flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov
36
37     pat
38
39     pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc up arch_perfmon
40
41     pebs
42
43     bts xtopology tsc_reliable aperfmperf pni ssse3 hypervisor dts
44
45     bogomips : 4588.00
46
47     clflush size : 64
48
49     cache_alignment : 64
50
51     address sizes : 40 bits physical, 48 bits virtual
52
53     power management:

查看内存信息

1 [email protected]:~# cat /proc/meminfo
 1 MemTotal: 508344 kB
 2
 3     MemFree: 10668 kB
 4
 5     Buffers: 10700 kB
 6
 7     Cached: 96056 kB
 8
 9     SwapCached: 34124 kB
10
11     Active: 231384 kB
12
13     Inactive: 231576 kB
14
15     Active(anon): 178524 kB
16
17     Inactive(anon): 178316 kB
18
19     Active(file): 52860 kB
20
21     Inactive(file): 53260 kB
22
23     ……
1 [email protected]:~# cat /proc/partitions
1     major minor #blocks name
2
3     8 0 20971520 sda
4
5     8 1 20446208 sda1
6
7     8 2 1 sda2
8
9     8 5 522240 sda5

我们学过操作系统原理的同学都知道,我们系统在执行程序时有会先后顺序的,但为什么我们的电脑可以边听音乐,边聊QQ,边上网,甚至还可以同时挂几个游戏。因为我们CPU运行超快。他可以把每个程序的进程排好队,这个执行一下,那个执行一下。所以,我们会觉得各种程序是并行运行的。
    当然,进程也会分个快慢缓急的,所以要对进程分个优先级。同学们在食堂排队打饭,总理来了,这优先级多高啊。同学们纷纷让开,先给总理打。
    * 优先级取值范围为(-20,19)
    linux给我们提供的优先级的范围为-20到19,我们启动一个进程时,默认的优先级为0 ,-20的优先级为最大,或者说最高。当然,我们在设置的时候可以写-30,但系统默认为-20.

指定程序的运行优先级
    格式:nice -n command
    例如:nice --5 command
    renice 命令
    改变一个正在运行的进程的优先级
    格式: renice n pid
    例如:renice -5 777
    例子:

1 [[email protected] cron]# ps -le
2 [[email protected] cron]# renice -20  [PID]

nohup命令可以在用户退出时继续执行某一进程
    一般的命令在用户退登录后就停止执行了,nohup命令可以使进程在用户退出登录后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认存储到文件nohup.out中
    格式:
    nohup program &
    例子:

1 [[email protected] cron]# nohup find / -name init* > /hzh/test/find.init.20120520 &

如果我们没指定/hzh/test/find.init.20120520这个保存位置的话,系统默认会把查询的结果放到nohup.out的文件中。我们一般不会去使用默认方式保存。
进程的挂起与恢复
    当我们执行一条命令时,发现太慢或输出内容太多,最常用到的做法就是终止(ctrl+c),那么挂起呢?通俗一点就是暂停呗!^_^!!
    进程中止(挂起)和终止
    挂起(ctrl+z)
    终止(ctrl+c)

1     [[email protected] ~]# find / -name init* > /hzh/test/find.init.20120520
2     [1]+ Stopped find / -name init* >/hzh/test/find.init.20120520

被暂停的进程会提示我们Stopped
    小知识:系统中有两种运行的进程,我们在前台是看不到的。一种是后台执行的命令,一种就是被暂停的。那我们通过什么方式查看被暂停和后台执行的进程呢?
    查看被挂起的进程(jobs)
    进程的恢复:
    恢复到前台继续运行(fg)
    恢复到后台继续运行(bg)

1     [[email protected] ~]# jobs     通过jobs命令可以查看后被暂停的进程
2     [1]+ Stopped find / -name init* >/hzh/test/find.init.20120520
3     [[email protected] ~]# fg        fg会将暂停的进程恢复到前台继续执行。
4
5     find / -name init* >/hzh/test/find.init.20120520
6
7     [[email protected] ~]# bg      bg会将暂停的进程恢复到后台继续执行
8
9     [1]+ find / -name init* >/hzh/test/find.init.20120520 &

通过top命令查看进程
    top命令与前面介绍的ps命令相似,已经介绍了ps,为什么还要top?top有它自己的优点呢。它比ps显示的信息更详细。而且是动态的噢,信息是在不断变化的噢!

 1   [[email protected] ~]# top
 2
 3     top - 12:45:16 up 43 min, 1 user, load average: 0.00, 0.04, 0.06
 4
 5     Tasks: 57 total, 1 running, 56 sleeping, 0 stopped, 0 zombie
 6
 7     Cpu(s): 0.3% us, 0.3% sy, 0.0% ni, 99.3% id, 0.0% wa, 0.0% hi, 0.0% si
 8
 9     Mem: 1034536k total, 232864k used, 801672k free, 60188k buffers
10
11     Swap: 1052248k total, 0k used, 1052248k free, 118692k cached
12
13     PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14
15     6848 root 15 0 28948 8444 2524 S 0.3 0.8 0:05.44 X
16
17     7181 root 16 0 7036 2436 1968 S 0.3 0.2 0:00.26 sshd
18
19     7244 root 16 0 1964 976 772 R 0.3 0.1 0:00.45 top
20
21     1 root 16 0 3116 544 464 S 0.0 0.1 0:00.97 init
22
23     2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
24
25     3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
26
27     4 root 5 -10 0 0 0 S 0.0 0.0 0:00.03 events/0
28
29     5 root 5 -10 0 0 0 S 0.0 0.0 0:00.01 khelper
30
31     6 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kthread
32
33     7 root 15 -10 0 0 0 S 0.0 0.0 0:00.00 kacpid
34
35     88 root 5 -10 0 0 0 S 0.0 0.0 0:00.01 kblockd/0
36
37     89 root 15 0 0 0 0 S 0.0 0.0 0:00.00 khubd
38
39     106 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
40
41     107 root 15 0 0 0 0 S 0.0 0.0 0:00.18 pdflush
42
43     108 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
44
45     109 root 6 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0
46
47     255 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kseriod

常用选项:
    d :   指定刷新的时间间隔
    c :   显示整个命令而不仅仅显示命令名
    在命令运行的时候按键盘d,会出现如下提示要求你输入刷新的间隔时间
    Change delay from 3.0 to: 10(秒)
    常用命令:
    u :   查看指定用户的进程
    k :   终止执行中的进程
    h or ?   获得帮助
    r:      重新设定进程优先级
    s:    改变刷新的时间间隔
    W:  将当前设置写入~/.toprc文件中

计划任务

我们在系统的管理中,很多时候不是及时的去操作,比如对某一网站数据的备份,备份的过程需要占用大量的系统资源,凌晨三四点的时候系统访问用户最少,系统最空闲。但我们的系统的系统管理员总不能老那个时间爬起来操作吧。
    计划命令分一次性计划和周期性计划。比如我要在今年10月1结婚,这是一次性的计划。不能每年的10月1结婚吧,真有女女愿意结,咱经济上也吃不消呀。睡觉就是周期性的计划。比如,我给自己规定每天晚上的11点半睡觉。那么到时间我就上床睡觉。
    at    安排作业在某一时刻执行一次
    batch  安排作业在系统负载不重时执行一次
    cron    安排周期性运行的作业
    一次性计划at和batch
    at命令指定时间的方式
    绝对计时方法:

1     midnight noon teatime
2     hh:mm [today]
3     hh:mm tomorrow
4     hh:mm 星期
5     hh:mm MM/DD/YY

相对计时方法:

1     now+n minutes
2     mow+n hours
3     now+n days

用法:
    指定在今天下午17:30执行某命令(假设现在时间是下午14:30,2012年1月11日)
    命令格式:

 1     at 5:30pm
 2     at 17:30
 3     at 17:20 today
 4     at now+3 hours
 5
 6     at now+180 minutes
 7
 8     at 17:30 12.1.11
 9
10     at 17:30 1.11.12
1 [[email protected] ~]# at now+5 minutes
2
3     at>

我们定的时间是5分钟之后,现在可以在at下面输入各种任务,保存!5分钟之后执行;不过,我们需要注意,在用命令时最好写命令的绝对路径,为了安全。

1     [[email protected] ~]# at now+5 minutes
2
3     at> /usr/bin/wall < /etc/motd    做一个广播,把etc/motd 文件广播出去
4
5     at>                   可以继续写其它的计划
6
7     at> <EOT>
8
9     job 2 at 2012-05-20 13:43      ctrl+d保存计划并退出

是否还担心我们的计划是否启动,通过下面两个命令查看at进程是否正常启动

1    [[email protected] test]# at -l
2
3     3 2012-05-20 13:57 a root
4
5     [[email protected] test]# atq
6
7     3 2012-05-20 13:57 a root

如果真的没有启动的话,可以通过手工方式重新启动一下

1  [[email protected] ~]# /etc/rc.d/init.d/atd start

删除at计划任务

1 [[email protected] test]# at -d

查看at计划任务

1 [[email protected] test]# ls /var/spool/at/

batch命令
      作用:
        安排一个或多个命令在系统负载较轻进运行一次(一般情况下负载较轻指平均负载降到0.8以下)
        使用方法同at
    周期性计划命令crontab
      作用:用于生成cron进程所需要的crontab文件
      crontab的命令格式
      crontab {-l|-r|-e}
      -l   显示当前的crontab
      -r   删除当前的crontab
      -e   使用编辑器编辑当前crontab文件
    好多人都觉得周期计划任务设置起来比较麻烦,其实我们只要掌握规律就很好设置。
    crontab -e

    规则:  把知道的具体的时间添上,不知道的都添加上*
    分钟    小时   天    月    星期   命令/脚本
    假如,我们每天早上4点要做一下操作,以下面方式表示:
    分钟    小时   天   月   星期    命令/脚本
    *         4      *    *    *    [具体的操作]
    假如,我们每周一和三下午的6点要做一下操作,以下面方式表示:
    分钟    小时    天    月  星期    命令/脚本
    *         18     *     *   1,3  [具体的操作]

案例:在上学的时候都有上机课,周一到周五,下午5点30上课结果。我们需要在5点30发一个通知,5点45自动关机。设定计划任务需要分两步完成,第一步提醒,第二步关机
    分钟   小时    天   月    星期    命令/脚本
    30     17      *    *    1-5    /usr/bin/wall < /hzh/test/guanji.wall
    45     17      *    *    1-5    /usr/bin/shudown -h now
    操作方法:

1     [[email protected] test]#  crontab -e    回车会进入一个vi文本中
2     根据我上面介绍格式编写内容,然后保存退出
3     crontab: installing new crontab 表示创建计划成功
4     通过下面方式进行查看计划:
5     [[email protected] test]# cd /var/spool/cron
6     [[email protected] cron]# ls
7     root
8     [[email protected] cron]# cat root
9     30 17 * * 1-5 /usr/bin/shudown -h now
时间: 2024-10-17 03:29:37

Linux学习之进程管理的相关文章

Linux学习之进程管理(十九)

Linux学习之进程管理 进程查看 查看系统中所有进程,使用BSD操作系统的格式 语法:ps aux 选项: a:显示所有前台进程 x:显示所有后台进程 u:显示这个进程是由哪个用户产生的 语法:ps -le 查看系统中所有进程,使用Linux标准命令格式 选项 l:显示详细信息 e:显示所有进程 USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越消耗资源. %MEM:该进程占用物理内存的百分比,占用越高,进程越消耗资源. VSZ:

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re

linux内核学习:进程管理

进程状态 TASK_RUNNING 可运行或正在运行 TASK_INTERRUPTIBLE 进程被阻塞,但可以被信号唤醒 TASK_UNINTERRUPTIBLE 进程被阻塞,且不可以被信号唤醒 TASK_STOPPED 进程已停止,且不能再投入运行 TASK_ZOMBIE 所谓的僵死进程,进程描述符仍然保留 关键函数和结构 task_struct thread_info current clone fork exec wait exit linux内核学习:进程管理,布布扣,bubuko.co

Linux 程序设计学习笔记----进程管理与程序开发(上)

转载请注明出处,http://blog.csdn.net/suool/article/details/38406211,谢谢! Linux进程存储结构和进程结构 可执行文件结构 如下图: 可以看出,此ELF可执行文件存储时(没有调入内存)分为代码区.数据区和未出花数据区三部分. 代码区:存放cpu的执行的机器指令. 数据区:包含程序中的已经初始化的静态变量,以及已经初始化的全局变量. 未初始化数据区:存入的是未初始化的全局变量和未初始化的静态变量. 现在在上面的程序代码中增加一个int的静态变量

linux学习之进程,线程和程序

                                                                                  程序.进程和线程的概念 1:程序和进程的差别 进程的出现最初是在UNIX下,用于表示多用户,多任务的操作系统环境下,应用程序在内存环境中基本执行单元的概念.进程是UNIX操作系统环境最基本的概念.是系统资源分配的最小单位.UNIX操作系统下的用户管理和资源分配等工作几乎都是操作系统通过对应用程序进程的控制实现的! 当使用c c++ j

Linux学习之日志管理(二十一)

Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服务名称 连接符号 日志等级 日志记录位置 日志轮替 日志文件命名 logrotate配置文件 logrotate命令 日志管理 日志服务 在Centos6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件

Linux入门之进程管理(4)之进程与文件

Linux入门之进程管理(4)之进程与文件 前面使用进程相关命令管理工具都是根据进程编号或者进程名称及其其它属性信息来查看和处理相关进程的,但是在某些情况下,想要查看某个文件或者某个设备被哪些进程所使用,使用ps.pgrep等命令查询的是不够准确的,而且有些时候并不是简单的去打开某个文本文件一样,这样还可以进行搜索过滤出来.而在linux系统中,除了常见的配置文件.日志文件等文本文件,几乎任何对象都会被内核映射去该有的文件,比如磁盘设备.挂载点等.当要知道那些用户通过哪些进程来在访问或者使用此文

linux应用开发-进程管理

linux应用开发-进程管理 一 进程 一个组成部分是操作系统用来管理进程的内核对象,内核对象是系统用来存放进程的统计信息的地方 1 每个进程都有一个父进程 2 子进程终止,父进程会得到通知并能去的进程的退出状态 3 命名空间 类似有C++的namespace 4 进程组 每个进程都有一个进程组,都有一个进程组号=组长PID 进程组组长-groupleader 5 会话期session是一个或多个进程组的集合 setsid可以创建会话期 6 相关换算 2^10 = 1K 2^20 = 1M 2^

Linux学习之用户管理命令与用户组管理命令(十五)

Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel 用户切换命令su 用户组管理命令 添加用户组 修改用户组 删除用户组 将用户添加到组或者从组中删除 用户管理命令 用户添加命令useradd 只能超级用户才能添加用户. useradd [选项] 用户名 选项: -u UID:手工指定用户的UID号 -d 家目录:手工指定用户的家目录 -c 用户说明