Solaris之进程管理

1. 列出进程ps

#ps –f             //显示当前用户进程的详细信息

UID   PID  PPID  C    STIME TTY      TIME CMD
root  4737  4724  0 09:39:39 pts/2    0:00 bash
root  4755  4737  0 10:10:05 pts/2    0:00 ps –f

#ps –Af         //列出系统中所有进程及详细信息

# ps –c         //调度顺序显示进程
   PID  CLS PRI TTY      TIME CMD
  4737   TS  49 pts/2    0:00 bash
  4759   TS  59 pts/2    0:00 ps

#ps –g 0        //显示某一组具体用户执行的进程的信息

PID TTY      TIME CMD
     0 ?        0:36 sched
     1 ?        0:00 init
     2 ?        0:00 pageout
     3 ?        2:30 fsflush

查看所有进程详细信息,在System V中用ps -eaf在;BSD中,用ps -aux。

2. top 命令交互式监测系统中的进程。【在solaris 9中默认没有安装,需要自行安装】

top读取/proc文件系统来产生进程统计表。top还可以实现kill掉一个进程,实际上是一个菜单化的管理工具。

3. 自动化执行进程at

如想在一个特殊的时间启动sendmail,则可以使用At命令:

at 0900                     //在早上9:00发送一个mail
at> /usr/lib/sendmail -bd
at> hello world;
at>                     //以ctrl+D代替
commands will be executed using /bin/bash
job 1240886580.a at Tue Apr 28 10:43:00 2009

接下来查看任务是否成功

#cd /var/spool/cron/atjobs

#ls –l

-r-Sr--r--   1 userzz    admin        831 Apr 27 11:07 1240886580.a

#cat 1240886580.a

……

注意,你会发现你并没有收到mail,因为你没有以root用户身份提交作业,因此,普通用户没有权限以后台程序方式启动sendmail.

显示关于作业处理的信息
#at -l 1098648000.a
显示当前作业的情况
# ls -l /var/spool/cron/atjobs
我们也可以使用at命令移出作业
例如:#at -r 1098648000.a
4. 对于成批运行的作业,必须用crontab命令,对应的文件/var/spool/cron/cronjobs

查看自己的crontab文件,使用:

#crontab –l root
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

这是solaris为根用户产生的标准contab命令,其中6个字段分别表示:

分钟(0~59).小时(0~23).该月的天(1~31).该年的月(1~12).该周的天(0~6).要执行的命令

其中0表示星期天。

以上面第一行为例,表示在每天3:10分进行logadm

#crontab –e                      //启动默认的编辑器如vi,编辑cron文件
注意要以ctrl+c结束编辑过程,Ctrl+D会清空整个文件。

#crobtab -r user1            //删除用户user1的所有任务。
5. 查看某一进程例子

#ps –eaf |grep bash
root  4958  4943  0 11:22:02 pts/2    0:00 grep bash
root  4943  4937  0 11:11:20 pts/2    0:00 bash

#cd /proc/4943

#ls –l

6. 使用proc工具

Proc相应的工具在目录/usr/proc/bin下。

#ls /usr/proc/bin
pcred   pflags  pmap    psig    pstop   ptree   pwdx
pfiles  pldd    prun    pstack  ptime   pwait
#/usr/proc/bin/pcred 4943
# /usr/proc/bin/pcred 4943
4943:   e/r/suid=0  e/r/sgid=1
        groups: 1 0 2 3 4 5 6 7 8 9 12
#/usr/proc/bin/pmap 4943              //查看进程的地址空间映射,以及调用的相应的库
4943:   bash
00010000     496K r-x--  /usr/bin/bash
0009A000      80K rwx--  /usr/bin/bash
000AE000     144K rwx--    [ heap ]
FF100000     688K r-x--  /usr/lib/libc.so.1
FF1BC000      32K rwx--  /usr/lib/libc.so.1
FF200000     568K r-x--  /usr/lib/libnsl.so.1
FF29E000      40K rwx--  /usr/lib/libnsl.so.1
FF2A8000      24K rwx--  /usr/lib/libnsl.so.1
FF300000      16K r-x--  /usr/lib/libmp.so.2
FF314000       8K rwx--  /usr/lib/libmp.so.2
FF320000       8K rwx--    [ anon ]
FF330000      40K r-x--  /usr/lib/libsocket.so.1
FF34A000       8K rwx--  /usr/lib/libsocket.so.1
FF350000     168K r-x--  /usr/lib/libcurses.so.1
FF38A000      32K rwx--  /usr/lib/libcurses.so.1
FF392000       8K rwx--  /usr/lib/libcurses.so.1
FF3A0000       8K r-x--  /usr/platform/sun4u-us3/lib/libc_psr.so.1
FF3B0000     184K r-x--  /usr/lib/ld.so.1
FF3EE000       8K rwx--  /usr/lib/ld.so.1
FF3F0000       8K rwx--  /usr/lib/ld.so.1
FF3FA000       8K rwx--  /usr/lib/libdl.so.1
FFBFC000      16K rw---    [ stack ]
total      2592K

# /usr/proc/bin/pldd 4943           //列出进程调用的库文件
4943:   bash
/usr/lib/libcurses.so.1
/usr/lib/libsocket.so.1
/usr/lib/libnsl.so.1
/usr/lib/libdl.so.1
/usr/lib/libc.so.1
/usr/lib/libmp.so.2
/usr/platform/sun4u-us3/lib/libc_psr.so.1
# /usr/proc/bin/psig 4943            //调用与每个进程相关的信号

#/usr/proc/bin/pfiles 4943           //显示每个进程打开的所有文件
#/usr/proc/bin/pwdx 4943          //显示当前进程的工作目录
#/usr/proc/bin/ptree 4943          //显示当前进程的工作树
7. 其它命令:lsof(list open files)【默认没有安装,需要安装】

该命令可以显示所有被进程打开的文件,如:

#lsof /

显示/目录下所有被打开的文件。

8. kill命令

用来给进程发送不同的信号,常见的有两种:

1表示挂挂起进程,如apache需要重新读取配置文件,可以用此参数

#kill –1 ‘pgrep apache’

9。表示杀死某个进程

#kill –9 bash

其它还有killall,pkill

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bennyfun79/archive/2009/04/27/4128291.aspx

你可能感兴趣的:(c,Solaris,配置管理,C#,bash)